{
  "pairs": [
    {
      "date": "2025-01-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "2.0613918083333333333333333333333333333333333333333",
      "contrast": "1.5386081916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/PM25/-1",
      "start_pst": "2024-12-31T23:00:00",
      "end_pst": "2025-01-01T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "2.0541666666666666666666666666666666666666666666667",
      "contrast": "1.5458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/PM25/-1",
      "start_pst": "2024-12-31T23:00:00",
      "end_pst": "2025-01-01T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "2.1647539565217391304347826086956521739130434782609",
      "contrast": "3.6352460434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/NO2/-1",
      "start_pst": "2024-12-31T23:00:00",
      "end_pst": "2025-01-01T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "2.1608695652173913043478260869565217391304347826087",
      "contrast": "3.6391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/NO2/-1",
      "start_pst": "2024-12-31T23:00:00",
      "end_pst": "2025-01-01T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": "5.456085",
      "contrast": "21.943915",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/NO2/-1",
      "start_pst": "2024-12-31T23:00:00",
      "end_pst": "2025-01-01T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": "5.5",
      "contrast": "21.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/NO2/-1",
      "start_pst": "2024-12-31T23:00:00",
      "end_pst": "2025-01-01T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "1.8512933083333333333333333333333333333333333333333",
      "contrast": "1.7487066916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/PM25/+0",
      "start_pst": "2025-01-01T00:00:00",
      "end_pst": "2025-01-02T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "1.8458333333333333333333333333333333333333333333333",
      "contrast": "1.7541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/PM25/+0",
      "start_pst": "2025-01-01T00:00:00",
      "end_pst": "2025-01-02T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "2.0910029565217391304347826086956521739130434782609",
      "contrast": "3.7089970434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/NO2/+0",
      "start_pst": "2025-01-01T00:00:00",
      "end_pst": "2025-01-02T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "2.0869565217391304347826086956521739130434782608696",
      "contrast": "3.7130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/NO2/+0",
      "start_pst": "2025-01-01T00:00:00",
      "end_pst": "2025-01-02T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": "5.456085",
      "contrast": "21.943915",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/NO2/+0",
      "start_pst": "2025-01-01T00:00:00",
      "end_pst": "2025-01-02T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": "5.5",
      "contrast": "21.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/NO2/+0",
      "start_pst": "2025-01-01T00:00:00",
      "end_pst": "2025-01-02T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "1.6630578125",
      "contrast": "1.9369421875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/PM25/+1",
      "start_pst": "2025-01-01T01:00:00",
      "end_pst": "2025-01-02T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "1.6583333333333333333333333333333333333333333333333",
      "contrast": "1.9416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/PM25/+1",
      "start_pst": "2025-01-01T01:00:00",
      "end_pst": "2025-01-02T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "2.0240266521739130434782608695652173913043478260870",
      "contrast": "3.7759733478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/NO2/+1",
      "start_pst": "2025-01-01T01:00:00",
      "end_pst": "2025-01-02T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "2.0173913043478260869565217391304347826086956521739",
      "contrast": "3.7826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/NO2/+1",
      "start_pst": "2025-01-01T01:00:00",
      "end_pst": "2025-01-02T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": "5.456085",
      "contrast": "21.943915",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/NO2/+1",
      "start_pst": "2025-01-01T01:00:00",
      "end_pst": "2025-01-02T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": "5.5",
      "contrast": "21.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-01/NO2/+1",
      "start_pst": "2025-01-01T01:00:00",
      "end_pst": "2025-01-02T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "1.4105933833333333333333333333333333333333333333333",
      "contrast": "3.2894066166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/PM25/-1",
      "start_pst": "2025-01-01T23:00:00",
      "end_pst": "2025-01-02T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "1.4083333333333333333333333333333333333333333333333",
      "contrast": "3.2916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/PM25/-1",
      "start_pst": "2025-01-01T23:00:00",
      "end_pst": "2025-01-02T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "1.8384380869565217391304347826086956521739130434783",
      "contrast": "2.9615619130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/NO2/-1",
      "start_pst": "2025-01-01T23:00:00",
      "end_pst": "2025-01-02T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "1.8304347826086956521739130434782608695652173913043",
      "contrast": "2.9695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/NO2/-1",
      "start_pst": "2025-01-01T23:00:00",
      "end_pst": "2025-01-02T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "3.331104",
      "contrast": "6.968896",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/NO2/-1",
      "start_pst": "2025-01-01T23:00:00",
      "end_pst": "2025-01-02T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "3.3",
      "contrast": "7.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/NO2/-1",
      "start_pst": "2025-01-01T23:00:00",
      "end_pst": "2025-01-02T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "1.4400109666666666666666666666666666666666666666667",
      "contrast": "3.2599890333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/PM25/+0",
      "start_pst": "2025-01-02T00:00:00",
      "end_pst": "2025-01-03T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "1.4375",
      "contrast": "3.2625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/PM25/+0",
      "start_pst": "2025-01-02T00:00:00",
      "end_pst": "2025-01-03T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "1.8801099565217391304347826086956521739130434782609",
      "contrast": "2.9198900434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/NO2/+0",
      "start_pst": "2025-01-02T00:00:00",
      "end_pst": "2025-01-03T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "1.8739130434782608695652173913043478260869565217391",
      "contrast": "2.9260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/NO2/+0",
      "start_pst": "2025-01-02T00:00:00",
      "end_pst": "2025-01-03T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "3.331104",
      "contrast": "6.968896",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/NO2/+0",
      "start_pst": "2025-01-02T00:00:00",
      "end_pst": "2025-01-03T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "3.3",
      "contrast": "7.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/NO2/+0",
      "start_pst": "2025-01-02T00:00:00",
      "end_pst": "2025-01-03T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.0564797083333333333333333333333333333333333333333",
      "contrast": "2.6435202916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/PM25/+1",
      "start_pst": "2025-01-02T01:00:00",
      "end_pst": "2025-01-03T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.0541666666666666666666666666666666666666666666667",
      "contrast": "2.6458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/PM25/+1",
      "start_pst": "2025-01-02T01:00:00",
      "end_pst": "2025-01-03T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "2.0099358695652173913043478260869565217391304347826",
      "contrast": "2.7900641304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/NO2/+1",
      "start_pst": "2025-01-02T01:00:00",
      "end_pst": "2025-01-03T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "2.0043478260869565217391304347826086956521739130435",
      "contrast": "2.7956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/NO2/+1",
      "start_pst": "2025-01-02T01:00:00",
      "end_pst": "2025-01-03T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "3.733553",
      "contrast": "6.566447",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/NO2/+1",
      "start_pst": "2025-01-02T01:00:00",
      "end_pst": "2025-01-03T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "3.7",
      "contrast": "6.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-02/NO2/+1",
      "start_pst": "2025-01-02T01:00:00",
      "end_pst": "2025-01-03T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "3.9225262291666666666666666666666666666666666666667",
      "contrast": "0.0774737708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/PM25/-1",
      "start_pst": "2025-01-02T23:00:00",
      "end_pst": "2025-01-03T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "3.925",
      "contrast": "0.075",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/PM25/-1",
      "start_pst": "2025-01-02T23:00:00",
      "end_pst": "2025-01-03T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "3.5990228260869565217391304347826086956521739130435",
      "contrast": "5.3009771739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/NO2/-1",
      "start_pst": "2025-01-02T23:00:00",
      "end_pst": "2025-01-03T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "3.6043478260869565217391304347826086956521739130435",
      "contrast": "5.2956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/NO2/-1",
      "start_pst": "2025-01-02T23:00:00",
      "end_pst": "2025-01-03T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.7",
      "town": "7.64784",
      "contrast": "14.05216",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/NO2/-1",
      "start_pst": "2025-01-02T23:00:00",
      "end_pst": "2025-01-03T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.7",
      "town": "7.6",
      "contrast": "14.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/NO2/-1",
      "start_pst": "2025-01-02T23:00:00",
      "end_pst": "2025-01-03T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "3.9530566875",
      "contrast": "0.0469433125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/PM25/+0",
      "start_pst": "2025-01-03T00:00:00",
      "end_pst": "2025-01-04T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "3.9541666666666666666666666666666666666666666666667",
      "contrast": "0.0458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/PM25/+0",
      "start_pst": "2025-01-03T00:00:00",
      "end_pst": "2025-01-04T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "3.6442821739130434782608695652173913043478260869565",
      "contrast": "5.2557178260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/NO2/+0",
      "start_pst": "2025-01-03T00:00:00",
      "end_pst": "2025-01-04T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "3.6478260869565217391304347826086956521739130434783",
      "contrast": "5.2521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/NO2/+0",
      "start_pst": "2025-01-03T00:00:00",
      "end_pst": "2025-01-04T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.7",
      "town": "7.64784",
      "contrast": "14.05216",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/NO2/+0",
      "start_pst": "2025-01-03T00:00:00",
      "end_pst": "2025-01-04T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.7",
      "town": "7.6",
      "contrast": "14.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/NO2/+0",
      "start_pst": "2025-01-03T00:00:00",
      "end_pst": "2025-01-04T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "3.4011699916666666666666666666666666666666666666667",
      "contrast": "0.5988300083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/PM25/+1",
      "start_pst": "2025-01-03T01:00:00",
      "end_pst": "2025-01-04T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "3.4041666666666666666666666666666666666666666666667",
      "contrast": "0.5958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/PM25/+1",
      "start_pst": "2025-01-03T01:00:00",
      "end_pst": "2025-01-04T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "3.5771170434782608695652173913043478260869565217391",
      "contrast": "5.3228829565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/NO2/+1",
      "start_pst": "2025-01-03T01:00:00",
      "end_pst": "2025-01-04T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "3.5826086956521739130434782608695652173913043478261",
      "contrast": "5.3173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/NO2/+1",
      "start_pst": "2025-01-03T01:00:00",
      "end_pst": "2025-01-04T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.7",
      "town": "7.64784",
      "contrast": "14.05216",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/NO2/+1",
      "start_pst": "2025-01-03T01:00:00",
      "end_pst": "2025-01-04T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.7",
      "town": "7.6",
      "contrast": "14.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-03/NO2/+1",
      "start_pst": "2025-01-03T01:00:00",
      "end_pst": "2025-01-04T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.5001489583333333333333333333333333333333333333333",
      "contrast": "1.6998510416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/PM25/-1",
      "start_pst": "2025-01-03T23:00:00",
      "end_pst": "2025-01-04T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.4958333333333333333333333333333333333333333333333",
      "contrast": "1.7041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/PM25/-1",
      "start_pst": "2025-01-03T23:00:00",
      "end_pst": "2025-01-04T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.3996103913043478260869565217391304347826086956522",
      "contrast": "2.2003896086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/NO2/-1",
      "start_pst": "2025-01-03T23:00:00",
      "end_pst": "2025-01-04T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.4043478260869565217391304347826086956521739130435",
      "contrast": "2.1956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/NO2/-1",
      "start_pst": "2025-01-03T23:00:00",
      "end_pst": "2025-01-04T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "8.581715",
      "contrast": "2.718285",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/NO2/-1",
      "start_pst": "2025-01-03T23:00:00",
      "end_pst": "2025-01-04T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "8.6",
      "contrast": "2.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/NO2/-1",
      "start_pst": "2025-01-03T23:00:00",
      "end_pst": "2025-01-04T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.4543987916666666666666666666666666666666666666667",
      "contrast": "1.7456012083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/PM25/+0",
      "start_pst": "2025-01-04T00:00:00",
      "end_pst": "2025-01-05T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.45",
      "contrast": "1.75",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/PM25/+0",
      "start_pst": "2025-01-04T00:00:00",
      "end_pst": "2025-01-05T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.3521080434782608695652173913043478260869565217391",
      "contrast": "2.2478919565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/NO2/+0",
      "start_pst": "2025-01-04T00:00:00",
      "end_pst": "2025-01-05T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.3565217391304347826086956521739130434782608695652",
      "contrast": "2.2434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/NO2/+0",
      "start_pst": "2025-01-04T00:00:00",
      "end_pst": "2025-01-05T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "8.581715",
      "contrast": "2.718285",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/NO2/+0",
      "start_pst": "2025-01-04T00:00:00",
      "end_pst": "2025-01-05T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "8.6",
      "contrast": "2.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/NO2/+0",
      "start_pst": "2025-01-04T00:00:00",
      "end_pst": "2025-01-05T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.4062312875",
      "contrast": "1.7937687125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/PM25/+1",
      "start_pst": "2025-01-04T01:00:00",
      "end_pst": "2025-01-05T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.4",
      "contrast": "1.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/PM25/+1",
      "start_pst": "2025-01-04T01:00:00",
      "end_pst": "2025-01-05T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.3029010869565217391304347826086956521739130434783",
      "contrast": "2.2970989130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/NO2/+1",
      "start_pst": "2025-01-04T01:00:00",
      "end_pst": "2025-01-05T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.3086956521739130434782608695652173913043478260870",
      "contrast": "2.2913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/NO2/+1",
      "start_pst": "2025-01-04T01:00:00",
      "end_pst": "2025-01-05T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "8.581715",
      "contrast": "2.718285",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/NO2/+1",
      "start_pst": "2025-01-04T01:00:00",
      "end_pst": "2025-01-05T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "8.6",
      "contrast": "2.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-04/NO2/+1",
      "start_pst": "2025-01-04T01:00:00",
      "end_pst": "2025-01-05T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "3.9257163458333333333333333333333333333333333333333",
      "contrast": "1.3742836541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/PM25/-1",
      "start_pst": "2025-01-04T23:00:00",
      "end_pst": "2025-01-05T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "3.9166666666666666666666666666666666666666666666667",
      "contrast": "1.3833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/PM25/-1",
      "start_pst": "2025-01-04T23:00:00",
      "end_pst": "2025-01-05T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.6007817083333333333333333333333333333333333333333",
      "contrast": "2.3992182916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/NO2/-1",
      "start_pst": "2025-01-04T23:00:00",
      "end_pst": "2025-01-05T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.6083333333333333333333333333333333333333333333333",
      "contrast": "2.3916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/NO2/-1",
      "start_pst": "2025-01-04T23:00:00",
      "end_pst": "2025-01-05T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "7.357479",
      "contrast": "2.542521",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/NO2/-1",
      "start_pst": "2025-01-04T23:00:00",
      "end_pst": "2025-01-05T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "7.4",
      "contrast": "2.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/NO2/-1",
      "start_pst": "2025-01-04T23:00:00",
      "end_pst": "2025-01-05T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "4.0333030125",
      "contrast": "1.2666969875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/PM25/+0",
      "start_pst": "2025-01-05T00:00:00",
      "end_pst": "2025-01-06T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "4.025",
      "contrast": "1.275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/PM25/+0",
      "start_pst": "2025-01-05T00:00:00",
      "end_pst": "2025-01-06T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.6479062173913043478260869565217391304347826086957",
      "contrast": "2.3520937826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/NO2/+0",
      "start_pst": "2025-01-05T00:00:00",
      "end_pst": "2025-01-06T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.6565217391304347826086956521739130434782608695652",
      "contrast": "2.3434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/NO2/+0",
      "start_pst": "2025-01-05T00:00:00",
      "end_pst": "2025-01-06T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "7.357479",
      "contrast": "2.542521",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/NO2/+0",
      "start_pst": "2025-01-05T00:00:00",
      "end_pst": "2025-01-06T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "7.4",
      "contrast": "2.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/NO2/+0",
      "start_pst": "2025-01-05T00:00:00",
      "end_pst": "2025-01-06T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "4.0369157208333333333333333333333333333333333333333",
      "contrast": "1.2630842791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/PM25/+1",
      "start_pst": "2025-01-05T01:00:00",
      "end_pst": "2025-01-06T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "4.0291666666666666666666666666666666666666666666667",
      "contrast": "1.2708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/PM25/+1",
      "start_pst": "2025-01-05T01:00:00",
      "end_pst": "2025-01-06T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.7329532608695652173913043478260869565217391304348",
      "contrast": "2.2670467391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/NO2/+1",
      "start_pst": "2025-01-05T01:00:00",
      "end_pst": "2025-01-06T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.7391304347826086956521739130434782608695652173913",
      "contrast": "2.2608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/NO2/+1",
      "start_pst": "2025-01-05T01:00:00",
      "end_pst": "2025-01-06T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "7.357479",
      "contrast": "2.542521",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/NO2/+1",
      "start_pst": "2025-01-05T01:00:00",
      "end_pst": "2025-01-06T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "7.4",
      "contrast": "2.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-05/NO2/+1",
      "start_pst": "2025-01-05T01:00:00",
      "end_pst": "2025-01-06T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "2.0991083708333333333333333333333333333333333333333",
      "contrast": "2.5008916291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/PM25/-1",
      "start_pst": "2025-01-05T23:00:00",
      "end_pst": "2025-01-06T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "2.1",
      "contrast": "2.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/PM25/-1",
      "start_pst": "2025-01-05T23:00:00",
      "end_pst": "2025-01-06T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.8414860434782608695652173913043478260869565217391",
      "contrast": "1.5585139565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/NO2/-1",
      "start_pst": "2025-01-05T23:00:00",
      "end_pst": "2025-01-06T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.8217391304347826086956521739130434782608695652174",
      "contrast": "1.5782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/NO2/-1",
      "start_pst": "2025-01-05T23:00:00",
      "end_pst": "2025-01-06T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "12.84042",
      "contrast": "-0.64042",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/NO2/-1",
      "start_pst": "2025-01-05T23:00:00",
      "end_pst": "2025-01-06T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "12.8",
      "contrast": "-0.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/NO2/-1",
      "start_pst": "2025-01-05T23:00:00",
      "end_pst": "2025-01-06T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "2.0754629125",
      "contrast": "2.5245370875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/PM25/+0",
      "start_pst": "2025-01-06T00:00:00",
      "end_pst": "2025-01-07T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "2.075",
      "contrast": "2.525",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/PM25/+0",
      "start_pst": "2025-01-06T00:00:00",
      "end_pst": "2025-01-07T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.73097125",
      "contrast": "1.66902875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/NO2/+0",
      "start_pst": "2025-01-06T00:00:00",
      "end_pst": "2025-01-07T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.7125",
      "contrast": "1.6875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/NO2/+0",
      "start_pst": "2025-01-06T00:00:00",
      "end_pst": "2025-01-07T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "12.84042",
      "contrast": "-0.64042",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/NO2/+0",
      "start_pst": "2025-01-06T00:00:00",
      "end_pst": "2025-01-07T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "12.8",
      "contrast": "-0.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/NO2/+0",
      "start_pst": "2025-01-06T00:00:00",
      "end_pst": "2025-01-07T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "2.0483646208333333333333333333333333333333333333333",
      "contrast": "2.5516353791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/PM25/+1",
      "start_pst": "2025-01-06T01:00:00",
      "end_pst": "2025-01-07T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "2.05",
      "contrast": "2.55",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/PM25/+1",
      "start_pst": "2025-01-06T01:00:00",
      "end_pst": "2025-01-07T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.8056623043478260869565217391304347826086956521739",
      "contrast": "1.5943376956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/NO2/+1",
      "start_pst": "2025-01-06T01:00:00",
      "end_pst": "2025-01-07T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.7869565217391304347826086956521739130434782608696",
      "contrast": "1.6130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/NO2/+1",
      "start_pst": "2025-01-06T01:00:00",
      "end_pst": "2025-01-07T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "12.84042",
      "contrast": "-0.64042",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/NO2/+1",
      "start_pst": "2025-01-06T01:00:00",
      "end_pst": "2025-01-07T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "12.8",
      "contrast": "-0.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-06/NO2/+1",
      "start_pst": "2025-01-06T01:00:00",
      "end_pst": "2025-01-07T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.283817675",
      "contrast": "2.816182325",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/PM25/-1",
      "start_pst": "2025-01-06T23:00:00",
      "end_pst": "2025-01-07T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.2791666666666666666666666666666666666666666666667",
      "contrast": "2.8208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/PM25/-1",
      "start_pst": "2025-01-06T23:00:00",
      "end_pst": "2025-01-07T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "5.8439072173913043478260869565217391304347826086957",
      "contrast": "2.6560927826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/NO2/-1",
      "start_pst": "2025-01-06T23:00:00",
      "end_pst": "2025-01-07T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "5.8478260869565217391304347826086956521739130434783",
      "contrast": "2.6521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/NO2/-1",
      "start_pst": "2025-01-06T23:00:00",
      "end_pst": "2025-01-07T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "15.0129",
      "contrast": "-1.5129",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/NO2/-1",
      "start_pst": "2025-01-06T23:00:00",
      "end_pst": "2025-01-07T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "15",
      "contrast": "-1.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/NO2/-1",
      "start_pst": "2025-01-06T23:00:00",
      "end_pst": "2025-01-07T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.3686428916666666666666666666666666666666666666667",
      "contrast": "2.7313571083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/PM25/+0",
      "start_pst": "2025-01-07T00:00:00",
      "end_pst": "2025-01-08T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.3666666666666666666666666666666666666666666666667",
      "contrast": "2.7333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/PM25/+0",
      "start_pst": "2025-01-07T00:00:00",
      "end_pst": "2025-01-08T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "5.8577297826086956521739130434782608695652173913043",
      "contrast": "2.6422702173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/NO2/+0",
      "start_pst": "2025-01-07T00:00:00",
      "end_pst": "2025-01-08T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "5.8608695652173913043478260869565217391304347826087",
      "contrast": "2.6391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/NO2/+0",
      "start_pst": "2025-01-07T00:00:00",
      "end_pst": "2025-01-08T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "15.0129",
      "contrast": "-1.5129",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/NO2/+0",
      "start_pst": "2025-01-07T00:00:00",
      "end_pst": "2025-01-08T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "15",
      "contrast": "-1.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/NO2/+0",
      "start_pst": "2025-01-07T00:00:00",
      "end_pst": "2025-01-08T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.3975050166666666666666666666666666666666666666667",
      "contrast": "2.7024949833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/PM25/+1",
      "start_pst": "2025-01-07T01:00:00",
      "end_pst": "2025-01-08T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.3916666666666666666666666666666666666666666666667",
      "contrast": "2.7083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/PM25/+1",
      "start_pst": "2025-01-07T01:00:00",
      "end_pst": "2025-01-08T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "5.6546077083333333333333333333333333333333333333333",
      "contrast": "2.8453922916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/NO2/+1",
      "start_pst": "2025-01-07T01:00:00",
      "end_pst": "2025-01-08T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "5.6583333333333333333333333333333333333333333333333",
      "contrast": "2.8416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/NO2/+1",
      "start_pst": "2025-01-07T01:00:00",
      "end_pst": "2025-01-08T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "15.0129",
      "contrast": "-1.5129",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/NO2/+1",
      "start_pst": "2025-01-07T01:00:00",
      "end_pst": "2025-01-08T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "15",
      "contrast": "-1.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-07/NO2/+1",
      "start_pst": "2025-01-07T01:00:00",
      "end_pst": "2025-01-08T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.8177997041666666666666666666666666666666666666667",
      "contrast": "2.2822002958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/PM25/-1",
      "start_pst": "2025-01-07T23:00:00",
      "end_pst": "2025-01-08T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.825",
      "contrast": "2.275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/PM25/-1",
      "start_pst": "2025-01-07T23:00:00",
      "end_pst": "2025-01-08T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.1049093913043478260869565217391304347826086956522",
      "contrast": "4.0950906086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/NO2/-1",
      "start_pst": "2025-01-07T23:00:00",
      "end_pst": "2025-01-08T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.0956521739130434782608695652173913043478260869565",
      "contrast": "4.1043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/NO2/-1",
      "start_pst": "2025-01-07T23:00:00",
      "end_pst": "2025-01-08T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "9.424824",
      "contrast": "5.475176",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/NO2/-1",
      "start_pst": "2025-01-07T23:00:00",
      "end_pst": "2025-01-08T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "9.4",
      "contrast": "5.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/NO2/-1",
      "start_pst": "2025-01-07T23:00:00",
      "end_pst": "2025-01-08T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.7015091541666666666666666666666666666666666666667",
      "contrast": "2.3984908458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/PM25/+0",
      "start_pst": "2025-01-08T00:00:00",
      "end_pst": "2025-01-09T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.7083333333333333333333333333333333333333333333333",
      "contrast": "2.3916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/PM25/+0",
      "start_pst": "2025-01-08T00:00:00",
      "end_pst": "2025-01-09T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.1230598260869565217391304347826086956521739130435",
      "contrast": "4.0769401739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/NO2/+0",
      "start_pst": "2025-01-08T00:00:00",
      "end_pst": "2025-01-09T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.1130434782608695652173913043478260869565217391304",
      "contrast": "4.0869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/NO2/+0",
      "start_pst": "2025-01-08T00:00:00",
      "end_pst": "2025-01-09T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "9.424824",
      "contrast": "5.475176",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/NO2/+0",
      "start_pst": "2025-01-08T00:00:00",
      "end_pst": "2025-01-09T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "9.4",
      "contrast": "5.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/NO2/+0",
      "start_pst": "2025-01-08T00:00:00",
      "end_pst": "2025-01-09T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.9063894041666666666666666666666666666666666666667",
      "contrast": "2.1936105958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/PM25/+1",
      "start_pst": "2025-01-08T01:00:00",
      "end_pst": "2025-01-09T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.9166666666666666666666666666666666666666666666667",
      "contrast": "2.1833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/PM25/+1",
      "start_pst": "2025-01-08T01:00:00",
      "end_pst": "2025-01-09T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.2565225652173913043478260869565217391304347826087",
      "contrast": "3.9434774347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/NO2/+1",
      "start_pst": "2025-01-08T01:00:00",
      "end_pst": "2025-01-09T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.2478260869565217391304347826086956521739130434783",
      "contrast": "3.9521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/NO2/+1",
      "start_pst": "2025-01-08T01:00:00",
      "end_pst": "2025-01-09T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "9.424824",
      "contrast": "5.475176",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/NO2/+1",
      "start_pst": "2025-01-08T01:00:00",
      "end_pst": "2025-01-09T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "9.4",
      "contrast": "5.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-08/NO2/+1",
      "start_pst": "2025-01-08T01:00:00",
      "end_pst": "2025-01-09T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.2590716958333333333333333333333333333333333333333",
      "contrast": "2.7409283041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/PM25/-1",
      "start_pst": "2025-01-08T23:00:00",
      "end_pst": "2025-01-09T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.2625",
      "contrast": "2.7375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/PM25/-1",
      "start_pst": "2025-01-08T23:00:00",
      "end_pst": "2025-01-09T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "4.5721149130434782608695652173913043478260869565217",
      "contrast": "2.5278850869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/NO2/-1",
      "start_pst": "2025-01-08T23:00:00",
      "end_pst": "2025-01-09T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "4.5739130434782608695652173913043478260869565217391",
      "contrast": "2.5260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/NO2/-1",
      "start_pst": "2025-01-08T23:00:00",
      "end_pst": "2025-01-09T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.9",
      "town": "11.57434",
      "contrast": "14.32566",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/NO2/-1",
      "start_pst": "2025-01-08T23:00:00",
      "end_pst": "2025-01-09T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.9",
      "town": "11.6",
      "contrast": "14.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/NO2/-1",
      "start_pst": "2025-01-08T23:00:00",
      "end_pst": "2025-01-09T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.2863066583333333333333333333333333333333333333333",
      "contrast": "2.7136933416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/PM25/+0",
      "start_pst": "2025-01-09T00:00:00",
      "end_pst": "2025-01-10T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.2875",
      "contrast": "2.7125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/PM25/+0",
      "start_pst": "2025-01-09T00:00:00",
      "end_pst": "2025-01-10T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "4.5772243913043478260869565217391304347826086956522",
      "contrast": "2.5227756086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/NO2/+0",
      "start_pst": "2025-01-09T00:00:00",
      "end_pst": "2025-01-10T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "4.5782608695652173913043478260869565217391304347826",
      "contrast": "2.5217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/NO2/+0",
      "start_pst": "2025-01-09T00:00:00",
      "end_pst": "2025-01-10T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.9",
      "town": "11.57434",
      "contrast": "14.32566",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/NO2/+0",
      "start_pst": "2025-01-09T00:00:00",
      "end_pst": "2025-01-10T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.9",
      "town": "11.6",
      "contrast": "14.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/NO2/+0",
      "start_pst": "2025-01-09T00:00:00",
      "end_pst": "2025-01-10T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.0923991583333333333333333333333333333333333333333",
      "contrast": "2.9076008416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/PM25/+1",
      "start_pst": "2025-01-09T01:00:00",
      "end_pst": "2025-01-10T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.0916666666666666666666666666666666666666666666667",
      "contrast": "2.9083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/PM25/+1",
      "start_pst": "2025-01-09T01:00:00",
      "end_pst": "2025-01-10T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "4.5015479565217391304347826086956521739130434782609",
      "contrast": "2.5984520434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/NO2/+1",
      "start_pst": "2025-01-09T01:00:00",
      "end_pst": "2025-01-10T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "4.5",
      "contrast": "2.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/NO2/+1",
      "start_pst": "2025-01-09T01:00:00",
      "end_pst": "2025-01-10T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.9",
      "town": "11.57434",
      "contrast": "14.32566",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/NO2/+1",
      "start_pst": "2025-01-09T01:00:00",
      "end_pst": "2025-01-10T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.9",
      "town": "11.6",
      "contrast": "14.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-09/NO2/+1",
      "start_pst": "2025-01-09T01:00:00",
      "end_pst": "2025-01-10T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.3873591791666666666666666666666666666666666666667",
      "contrast": "3.1126408208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/PM25/-1",
      "start_pst": "2025-01-09T23:00:00",
      "end_pst": "2025-01-10T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.3791666666666666666666666666666666666666666666667",
      "contrast": "3.1208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/PM25/-1",
      "start_pst": "2025-01-09T23:00:00",
      "end_pst": "2025-01-10T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.3767408260869565217391304347826086956521739130435",
      "contrast": "3.2232591739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/NO2/-1",
      "start_pst": "2025-01-09T23:00:00",
      "end_pst": "2025-01-10T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.3739130434782608695652173913043478260869565217391",
      "contrast": "3.2260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/NO2/-1",
      "start_pst": "2025-01-09T23:00:00",
      "end_pst": "2025-01-10T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "10.97802",
      "contrast": "4.72198",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/NO2/-1",
      "start_pst": "2025-01-09T23:00:00",
      "end_pst": "2025-01-10T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "11",
      "contrast": "4.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/NO2/-1",
      "start_pst": "2025-01-09T23:00:00",
      "end_pst": "2025-01-10T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.3631452583333333333333333333333333333333333333333",
      "contrast": "3.1368547416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/PM25/+0",
      "start_pst": "2025-01-10T00:00:00",
      "end_pst": "2025-01-11T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.3583333333333333333333333333333333333333333333333",
      "contrast": "3.1416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/PM25/+0",
      "start_pst": "2025-01-10T00:00:00",
      "end_pst": "2025-01-11T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.3140960869565217391304347826086956521739130434783",
      "contrast": "3.2859039130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/NO2/+0",
      "start_pst": "2025-01-10T00:00:00",
      "end_pst": "2025-01-11T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.3130434782608695652173913043478260869565217391304",
      "contrast": "3.2869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/NO2/+0",
      "start_pst": "2025-01-10T00:00:00",
      "end_pst": "2025-01-11T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "10.97802",
      "contrast": "4.72198",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/NO2/+0",
      "start_pst": "2025-01-10T00:00:00",
      "end_pst": "2025-01-11T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "11",
      "contrast": "4.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/NO2/+0",
      "start_pst": "2025-01-10T00:00:00",
      "end_pst": "2025-01-11T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.3543580916666666666666666666666666666666666666667",
      "contrast": "3.1456419083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/PM25/+1",
      "start_pst": "2025-01-10T01:00:00",
      "end_pst": "2025-01-11T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.35",
      "contrast": "3.15",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/PM25/+1",
      "start_pst": "2025-01-10T01:00:00",
      "end_pst": "2025-01-11T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.2683504782608695652173913043478260869565217391304",
      "contrast": "3.3316495217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/NO2/+1",
      "start_pst": "2025-01-10T01:00:00",
      "end_pst": "2025-01-11T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.2695652173913043478260869565217391304347826086957",
      "contrast": "3.3304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/NO2/+1",
      "start_pst": "2025-01-10T01:00:00",
      "end_pst": "2025-01-11T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "10.97802",
      "contrast": "4.72198",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/NO2/+1",
      "start_pst": "2025-01-10T01:00:00",
      "end_pst": "2025-01-11T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "11",
      "contrast": "4.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-10/NO2/+1",
      "start_pst": "2025-01-10T01:00:00",
      "end_pst": "2025-01-11T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.1245527916666666666666666666666666666666666666667",
      "contrast": "2.4754472083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/PM25/-1",
      "start_pst": "2025-01-10T23:00:00",
      "end_pst": "2025-01-11T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.125",
      "contrast": "2.475",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/PM25/-1",
      "start_pst": "2025-01-10T23:00:00",
      "end_pst": "2025-01-11T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.4865167391304347826086956521739130434782608695652",
      "contrast": "4.3134832608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/NO2/-1",
      "start_pst": "2025-01-10T23:00:00",
      "end_pst": "2025-01-11T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.4826086956521739130434782608695652173913043478261",
      "contrast": "4.3173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/NO2/-1",
      "start_pst": "2025-01-10T23:00:00",
      "end_pst": "2025-01-11T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "5.693771",
      "contrast": "7.206229",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/NO2/-1",
      "start_pst": "2025-01-10T23:00:00",
      "end_pst": "2025-01-11T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "5.7",
      "contrast": "7.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/NO2/-1",
      "start_pst": "2025-01-10T23:00:00",
      "end_pst": "2025-01-11T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.4056090791666666666666666666666666666666666666667",
      "contrast": "2.1943909208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/PM25/+0",
      "start_pst": "2025-01-11T00:00:00",
      "end_pst": "2025-01-12T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.4041666666666666666666666666666666666666666666667",
      "contrast": "2.1958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/PM25/+0",
      "start_pst": "2025-01-11T00:00:00",
      "end_pst": "2025-01-12T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.5785948260869565217391304347826086956521739130435",
      "contrast": "4.2214051739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/NO2/+0",
      "start_pst": "2025-01-11T00:00:00",
      "end_pst": "2025-01-12T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.5739130434782608695652173913043478260869565217391",
      "contrast": "4.2260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/NO2/+0",
      "start_pst": "2025-01-11T00:00:00",
      "end_pst": "2025-01-12T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "5.693771",
      "contrast": "7.206229",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/NO2/+0",
      "start_pst": "2025-01-11T00:00:00",
      "end_pst": "2025-01-12T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "5.7",
      "contrast": "7.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/NO2/+0",
      "start_pst": "2025-01-11T00:00:00",
      "end_pst": "2025-01-12T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.6092314916666666666666666666666666666666666666667",
      "contrast": "1.9907685083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/PM25/+1",
      "start_pst": "2025-01-11T01:00:00",
      "end_pst": "2025-01-12T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.6083333333333333333333333333333333333333333333333",
      "contrast": "1.9916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/PM25/+1",
      "start_pst": "2025-01-11T01:00:00",
      "end_pst": "2025-01-12T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.6512898695652173913043478260869565217391304347826",
      "contrast": "4.1487101304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/NO2/+1",
      "start_pst": "2025-01-11T01:00:00",
      "end_pst": "2025-01-12T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.6434782608695652173913043478260869565217391304348",
      "contrast": "4.1565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/NO2/+1",
      "start_pst": "2025-01-11T01:00:00",
      "end_pst": "2025-01-12T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "5.693771",
      "contrast": "7.206229",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/NO2/+1",
      "start_pst": "2025-01-11T01:00:00",
      "end_pst": "2025-01-12T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "5.7",
      "contrast": "7.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-11/NO2/+1",
      "start_pst": "2025-01-11T01:00:00",
      "end_pst": "2025-01-12T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "4.7615249041666666666666666666666666666666666666667",
      "contrast": "1.1384750958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/PM25/-1",
      "start_pst": "2025-01-11T23:00:00",
      "end_pst": "2025-01-12T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "4.7541666666666666666666666666666666666666666666667",
      "contrast": "1.1458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/PM25/-1",
      "start_pst": "2025-01-11T23:00:00",
      "end_pst": "2025-01-12T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "3.9171636521739130434782608695652173913043478260870",
      "contrast": "1.2828363478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/NO2/-1",
      "start_pst": "2025-01-11T23:00:00",
      "end_pst": "2025-01-12T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "3.9086956521739130434782608695652173913043478260870",
      "contrast": "1.2913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/NO2/-1",
      "start_pst": "2025-01-11T23:00:00",
      "end_pst": "2025-01-12T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "11.02507",
      "contrast": "-2.22507",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/NO2/-1",
      "start_pst": "2025-01-11T23:00:00",
      "end_pst": "2025-01-12T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "11",
      "contrast": "-2.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/NO2/-1",
      "start_pst": "2025-01-11T23:00:00",
      "end_pst": "2025-01-12T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "4.5206380333333333333333333333333333333333333333333",
      "contrast": "1.3793619666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/PM25/+0",
      "start_pst": "2025-01-12T00:00:00",
      "end_pst": "2025-01-13T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "4.5125",
      "contrast": "1.3875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/PM25/+0",
      "start_pst": "2025-01-12T00:00:00",
      "end_pst": "2025-01-13T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "3.8926145652173913043478260869565217391304347826087",
      "contrast": "1.3073854347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/NO2/+0",
      "start_pst": "2025-01-12T00:00:00",
      "end_pst": "2025-01-13T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "3.8869565217391304347826086956521739130434782608696",
      "contrast": "1.3130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/NO2/+0",
      "start_pst": "2025-01-12T00:00:00",
      "end_pst": "2025-01-13T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "11.02507",
      "contrast": "-2.22507",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/NO2/+0",
      "start_pst": "2025-01-12T00:00:00",
      "end_pst": "2025-01-13T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "11",
      "contrast": "-2.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/NO2/+0",
      "start_pst": "2025-01-12T00:00:00",
      "end_pst": "2025-01-13T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "4.4080629083333333333333333333333333333333333333333",
      "contrast": "1.4919370916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/PM25/+1",
      "start_pst": "2025-01-12T01:00:00",
      "end_pst": "2025-01-13T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "4.4",
      "contrast": "1.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/PM25/+1",
      "start_pst": "2025-01-12T01:00:00",
      "end_pst": "2025-01-13T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "3.9462612173913043478260869565217391304347826086957",
      "contrast": "1.2537387826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/NO2/+1",
      "start_pst": "2025-01-12T01:00:00",
      "end_pst": "2025-01-13T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "3.9434782608695652173913043478260869565217391304348",
      "contrast": "1.2565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/NO2/+1",
      "start_pst": "2025-01-12T01:00:00",
      "end_pst": "2025-01-13T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "11.02507",
      "contrast": "-2.22507",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/NO2/+1",
      "start_pst": "2025-01-12T01:00:00",
      "end_pst": "2025-01-13T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "11",
      "contrast": "-2.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-12/NO2/+1",
      "start_pst": "2025-01-12T01:00:00",
      "end_pst": "2025-01-13T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "5.3686528083333333333333333333333333333333333333333",
      "contrast": "0.4313471916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/PM25/-1",
      "start_pst": "2025-01-12T23:00:00",
      "end_pst": "2025-01-13T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "5.3541666666666666666666666666666666666666666666667",
      "contrast": "0.4458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/PM25/-1",
      "start_pst": "2025-01-12T23:00:00",
      "end_pst": "2025-01-13T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "6.7923045217391304347826086956521739130434782608696",
      "contrast": "1.8076954782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/NO2/-1",
      "start_pst": "2025-01-12T23:00:00",
      "end_pst": "2025-01-13T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "6.8043478260869565217391304347826086956521739130435",
      "contrast": "1.7956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/NO2/-1",
      "start_pst": "2025-01-12T23:00:00",
      "end_pst": "2025-01-13T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.0",
      "town": "11.4067",
      "contrast": "3.5933",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/NO2/-1",
      "start_pst": "2025-01-12T23:00:00",
      "end_pst": "2025-01-13T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.0",
      "town": "11.4",
      "contrast": "3.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/NO2/-1",
      "start_pst": "2025-01-12T23:00:00",
      "end_pst": "2025-01-13T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "5.6007380166666666666666666666666666666666666666667",
      "contrast": "0.1992619833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/PM25/+0",
      "start_pst": "2025-01-13T00:00:00",
      "end_pst": "2025-01-14T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "5.5875",
      "contrast": "0.2125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/PM25/+0",
      "start_pst": "2025-01-13T00:00:00",
      "end_pst": "2025-01-14T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "6.8133938260869565217391304347826086956521739130435",
      "contrast": "1.7866061739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/NO2/+0",
      "start_pst": "2025-01-13T00:00:00",
      "end_pst": "2025-01-14T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "6.8217391304347826086956521739130434782608695652174",
      "contrast": "1.7782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/NO2/+0",
      "start_pst": "2025-01-13T00:00:00",
      "end_pst": "2025-01-14T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.0",
      "town": "11.4067",
      "contrast": "3.5933",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/NO2/+0",
      "start_pst": "2025-01-13T00:00:00",
      "end_pst": "2025-01-14T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.0",
      "town": "11.4",
      "contrast": "3.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/NO2/+0",
      "start_pst": "2025-01-13T00:00:00",
      "end_pst": "2025-01-14T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "5.7247996916666666666666666666666666666666666666667",
      "contrast": "0.0752003083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/PM25/+1",
      "start_pst": "2025-01-13T01:00:00",
      "end_pst": "2025-01-14T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "5.7125",
      "contrast": "0.0875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/PM25/+1",
      "start_pst": "2025-01-13T01:00:00",
      "end_pst": "2025-01-14T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "6.7630706956521739130434782608695652173913043478261",
      "contrast": "1.8369293043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/NO2/+1",
      "start_pst": "2025-01-13T01:00:00",
      "end_pst": "2025-01-14T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "6.7695652173913043478260869565217391304347826086957",
      "contrast": "1.8304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/NO2/+1",
      "start_pst": "2025-01-13T01:00:00",
      "end_pst": "2025-01-14T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.0",
      "town": "11.4067",
      "contrast": "3.5933",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/NO2/+1",
      "start_pst": "2025-01-13T01:00:00",
      "end_pst": "2025-01-14T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.0",
      "town": "11.4",
      "contrast": "3.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-13/NO2/+1",
      "start_pst": "2025-01-13T01:00:00",
      "end_pst": "2025-01-14T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "4.9841704583333333333333333333333333333333333333333",
      "contrast": "0.8158295416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/PM25/-1",
      "start_pst": "2025-01-13T23:00:00",
      "end_pst": "2025-01-14T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "4.9791666666666666666666666666666666666666666666667",
      "contrast": "0.8208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/PM25/-1",
      "start_pst": "2025-01-13T23:00:00",
      "end_pst": "2025-01-14T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.4436333478260869565217391304347826086956521739130",
      "contrast": "2.1563666521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/NO2/-1",
      "start_pst": "2025-01-13T23:00:00",
      "end_pst": "2025-01-14T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.4434782608695652173913043478260869565217391304348",
      "contrast": "2.1565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/NO2/-1",
      "start_pst": "2025-01-13T23:00:00",
      "end_pst": "2025-01-14T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "12.21886",
      "contrast": "0.08114",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/NO2/-1",
      "start_pst": "2025-01-13T23:00:00",
      "end_pst": "2025-01-14T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "12.2",
      "contrast": "0.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/NO2/-1",
      "start_pst": "2025-01-13T23:00:00",
      "end_pst": "2025-01-14T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "5.0516378708333333333333333333333333333333333333333",
      "contrast": "0.7483621291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/PM25/+0",
      "start_pst": "2025-01-14T00:00:00",
      "end_pst": "2025-01-15T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "5.0458333333333333333333333333333333333333333333333",
      "contrast": "0.7541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/PM25/+0",
      "start_pst": "2025-01-14T00:00:00",
      "end_pst": "2025-01-15T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.4632771739130434782608695652173913043478260869565",
      "contrast": "2.1367228260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/NO2/+0",
      "start_pst": "2025-01-14T00:00:00",
      "end_pst": "2025-01-15T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.4652173913043478260869565217391304347826086956522",
      "contrast": "2.1347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/NO2/+0",
      "start_pst": "2025-01-14T00:00:00",
      "end_pst": "2025-01-15T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "12.21886",
      "contrast": "0.08114",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/NO2/+0",
      "start_pst": "2025-01-14T00:00:00",
      "end_pst": "2025-01-15T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "12.2",
      "contrast": "0.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/NO2/+0",
      "start_pst": "2025-01-14T00:00:00",
      "end_pst": "2025-01-15T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "4.9278102458333333333333333333333333333333333333333",
      "contrast": "0.8721897541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/PM25/+1",
      "start_pst": "2025-01-14T01:00:00",
      "end_pst": "2025-01-15T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "4.9208333333333333333333333333333333333333333333333",
      "contrast": "0.8791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/PM25/+1",
      "start_pst": "2025-01-14T01:00:00",
      "end_pst": "2025-01-15T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.4639598260869565217391304347826086956521739130435",
      "contrast": "2.1360401739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/NO2/+1",
      "start_pst": "2025-01-14T01:00:00",
      "end_pst": "2025-01-15T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.4652173913043478260869565217391304347826086956522",
      "contrast": "2.1347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/NO2/+1",
      "start_pst": "2025-01-14T01:00:00",
      "end_pst": "2025-01-15T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "12.21886",
      "contrast": "0.08114",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/NO2/+1",
      "start_pst": "2025-01-14T01:00:00",
      "end_pst": "2025-01-15T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "12.2",
      "contrast": "0.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-14/NO2/+1",
      "start_pst": "2025-01-14T01:00:00",
      "end_pst": "2025-01-15T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.0087970791666666666666666666666666666666666666667",
      "contrast": "2.2912029208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/PM25/-1",
      "start_pst": "2025-01-14T23:00:00",
      "end_pst": "2025-01-15T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.0166666666666666666666666666666666666666666666667",
      "contrast": "2.2833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/PM25/-1",
      "start_pst": "2025-01-14T23:00:00",
      "end_pst": "2025-01-15T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "5.1509405217391304347826086956521739130434782608696",
      "contrast": "1.0490594782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/NO2/-1",
      "start_pst": "2025-01-14T23:00:00",
      "end_pst": "2025-01-15T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "5.1521739130434782608695652173913043478260869565217",
      "contrast": "1.0478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/NO2/-1",
      "start_pst": "2025-01-14T23:00:00",
      "end_pst": "2025-01-15T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "13.25476",
      "contrast": "-1.75476",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/NO2/-1",
      "start_pst": "2025-01-14T23:00:00",
      "end_pst": "2025-01-15T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "13.3",
      "contrast": "-1.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/NO2/-1",
      "start_pst": "2025-01-14T23:00:00",
      "end_pst": "2025-01-15T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.8509987083333333333333333333333333333333333333333",
      "contrast": "2.4490012916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/PM25/+0",
      "start_pst": "2025-01-15T00:00:00",
      "end_pst": "2025-01-16T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.8583333333333333333333333333333333333333333333333",
      "contrast": "2.4416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/PM25/+0",
      "start_pst": "2025-01-15T00:00:00",
      "end_pst": "2025-01-16T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "5.1841420434782608695652173913043478260869565217391",
      "contrast": "1.0158579565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/NO2/+0",
      "start_pst": "2025-01-15T00:00:00",
      "end_pst": "2025-01-16T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "5.1869565217391304347826086956521739130434782608696",
      "contrast": "1.0130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/NO2/+0",
      "start_pst": "2025-01-15T00:00:00",
      "end_pst": "2025-01-16T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "13.25476",
      "contrast": "-1.75476",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/NO2/+0",
      "start_pst": "2025-01-15T00:00:00",
      "end_pst": "2025-01-16T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "13.3",
      "contrast": "-1.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/NO2/+0",
      "start_pst": "2025-01-15T00:00:00",
      "end_pst": "2025-01-16T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.8061937458333333333333333333333333333333333333333",
      "contrast": "2.4938062541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/PM25/+1",
      "start_pst": "2025-01-15T01:00:00",
      "end_pst": "2025-01-16T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.8125",
      "contrast": "2.4875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/PM25/+1",
      "start_pst": "2025-01-15T01:00:00",
      "end_pst": "2025-01-16T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "5.357522",
      "contrast": "0.842478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/NO2/+1",
      "start_pst": "2025-01-15T01:00:00",
      "end_pst": "2025-01-16T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "5.3608695652173913043478260869565217391304347826087",
      "contrast": "0.8391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/NO2/+1",
      "start_pst": "2025-01-15T01:00:00",
      "end_pst": "2025-01-16T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "13.25476",
      "contrast": "-1.75476",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/NO2/+1",
      "start_pst": "2025-01-15T01:00:00",
      "end_pst": "2025-01-16T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "13.3",
      "contrast": "-1.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-15/NO2/+1",
      "start_pst": "2025-01-15T01:00:00",
      "end_pst": "2025-01-16T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "6.6189453208333333333333333333333333333333333333333",
      "contrast": "0.9810546791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/PM25/-1",
      "start_pst": "2025-01-15T23:00:00",
      "end_pst": "2025-01-16T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "6.6208333333333333333333333333333333333333333333333",
      "contrast": "0.9791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/PM25/-1",
      "start_pst": "2025-01-15T23:00:00",
      "end_pst": "2025-01-16T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "10.919156695652173913043478260869565217391304347826",
      "contrast": "-2.019156695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/NO2/-1",
      "start_pst": "2025-01-15T23:00:00",
      "end_pst": "2025-01-16T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "10.917391304347826086956521739130434782608695652174",
      "contrast": "-2.017391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/NO2/-1",
      "start_pst": "2025-01-15T23:00:00",
      "end_pst": "2025-01-16T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "19.8081",
      "contrast": "-1.7081",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/NO2/-1",
      "start_pst": "2025-01-15T23:00:00",
      "end_pst": "2025-01-16T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "19.8",
      "contrast": "-1.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/NO2/-1",
      "start_pst": "2025-01-15T23:00:00",
      "end_pst": "2025-01-16T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "6.9686582125",
      "contrast": "0.6313417875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/PM25/+0",
      "start_pst": "2025-01-16T00:00:00",
      "end_pst": "2025-01-17T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "6.9708333333333333333333333333333333333333333333333",
      "contrast": "0.6291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/PM25/+0",
      "start_pst": "2025-01-16T00:00:00",
      "end_pst": "2025-01-17T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "10.982515695652173913043478260869565217391304347826",
      "contrast": "-2.082515695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/NO2/+0",
      "start_pst": "2025-01-16T00:00:00",
      "end_pst": "2025-01-17T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "10.978260869565217391304347826086956521739130434783",
      "contrast": "-2.078260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/NO2/+0",
      "start_pst": "2025-01-16T00:00:00",
      "end_pst": "2025-01-17T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "19.8081",
      "contrast": "-1.7081",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/NO2/+0",
      "start_pst": "2025-01-16T00:00:00",
      "end_pst": "2025-01-17T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "19.8",
      "contrast": "-1.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/NO2/+0",
      "start_pst": "2025-01-16T00:00:00",
      "end_pst": "2025-01-17T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "7.3145480208333333333333333333333333333333333333333",
      "contrast": "0.2854519791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/PM25/+1",
      "start_pst": "2025-01-16T01:00:00",
      "end_pst": "2025-01-17T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "7.3166666666666666666666666666666666666666666666667",
      "contrast": "0.2833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/PM25/+1",
      "start_pst": "2025-01-16T01:00:00",
      "end_pst": "2025-01-17T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "10.918841391304347826086956521739130434782608695652",
      "contrast": "-2.018841391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/NO2/+1",
      "start_pst": "2025-01-16T01:00:00",
      "end_pst": "2025-01-17T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "10.913043478260869565217391304347826086956521739130",
      "contrast": "-2.013043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/NO2/+1",
      "start_pst": "2025-01-16T01:00:00",
      "end_pst": "2025-01-17T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "19.8081",
      "contrast": "-1.7081",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/NO2/+1",
      "start_pst": "2025-01-16T01:00:00",
      "end_pst": "2025-01-17T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "19.8",
      "contrast": "-1.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-16/NO2/+1",
      "start_pst": "2025-01-16T01:00:00",
      "end_pst": "2025-01-17T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.2746414291666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/PM25/-1",
      "start_pst": "2025-01-16T23:00:00",
      "end_pst": "2025-01-17T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.2666666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/PM25/-1",
      "start_pst": "2025-01-16T23:00:00",
      "end_pst": "2025-01-17T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.9713922173913043478260869565217391304347826086957",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/NO2/-1",
      "start_pst": "2025-01-16T23:00:00",
      "end_pst": "2025-01-17T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.9652173913043478260869565217391304347826086956522",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/NO2/-1",
      "start_pst": "2025-01-16T23:00:00",
      "end_pst": "2025-01-17T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "19.5843",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/NO2/-1",
      "start_pst": "2025-01-16T23:00:00",
      "end_pst": "2025-01-17T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "19.6",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/NO2/-1",
      "start_pst": "2025-01-16T23:00:00",
      "end_pst": "2025-01-17T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.0052348291666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/PM25/+0",
      "start_pst": "2025-01-17T00:00:00",
      "end_pst": "2025-01-18T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.9958333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/PM25/+0",
      "start_pst": "2025-01-17T00:00:00",
      "end_pst": "2025-01-18T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.0257082173913043478260869565217391304347826086957",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/NO2/+0",
      "start_pst": "2025-01-17T00:00:00",
      "end_pst": "2025-01-18T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.0217391304347826086956521739130434782608695652174",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/NO2/+0",
      "start_pst": "2025-01-17T00:00:00",
      "end_pst": "2025-01-18T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "19.5843",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/NO2/+0",
      "start_pst": "2025-01-17T00:00:00",
      "end_pst": "2025-01-18T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "19.6",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/NO2/+0",
      "start_pst": "2025-01-17T00:00:00",
      "end_pst": "2025-01-18T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.0121807166666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/PM25/+1",
      "start_pst": "2025-01-17T01:00:00",
      "end_pst": "2025-01-18T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.0041666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/PM25/+1",
      "start_pst": "2025-01-17T01:00:00",
      "end_pst": "2025-01-18T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.0978514782608695652173913043478260869565217391304",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/NO2/+1",
      "start_pst": "2025-01-17T01:00:00",
      "end_pst": "2025-01-18T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.0956521739130434782608695652173913043478260869565",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/NO2/+1",
      "start_pst": "2025-01-17T01:00:00",
      "end_pst": "2025-01-18T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "19.5843",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/NO2/+1",
      "start_pst": "2025-01-17T01:00:00",
      "end_pst": "2025-01-18T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "19.6",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-17/NO2/+1",
      "start_pst": "2025-01-17T01:00:00",
      "end_pst": "2025-01-18T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.8901590625",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/PM25/-1",
      "start_pst": "2025-01-17T23:00:00",
      "end_pst": "2025-01-18T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.8875",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/PM25/-1",
      "start_pst": "2025-01-17T23:00:00",
      "end_pst": "2025-01-18T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.4265704782608695652173913043478260869565217391304",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/NO2/-1",
      "start_pst": "2025-01-17T23:00:00",
      "end_pst": "2025-01-18T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.4217391304347826086956521739130434782608695652174",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/NO2/-1",
      "start_pst": "2025-01-17T23:00:00",
      "end_pst": "2025-01-18T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "16.46996",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/NO2/-1",
      "start_pst": "2025-01-17T23:00:00",
      "end_pst": "2025-01-18T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "16.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/NO2/-1",
      "start_pst": "2025-01-17T23:00:00",
      "end_pst": "2025-01-18T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.0385890916666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/PM25/+0",
      "start_pst": "2025-01-18T00:00:00",
      "end_pst": "2025-01-19T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.0375",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/PM25/+0",
      "start_pst": "2025-01-18T00:00:00",
      "end_pst": "2025-01-19T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.4800008260869565217391304347826086956521739130435",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/NO2/+0",
      "start_pst": "2025-01-18T00:00:00",
      "end_pst": "2025-01-19T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.4739130434782608695652173913043478260869565217391",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/NO2/+0",
      "start_pst": "2025-01-18T00:00:00",
      "end_pst": "2025-01-19T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "16.46996",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/NO2/+0",
      "start_pst": "2025-01-18T00:00:00",
      "end_pst": "2025-01-19T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "16.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/NO2/+0",
      "start_pst": "2025-01-18T00:00:00",
      "end_pst": "2025-01-19T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.0757634375",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/PM25/+1",
      "start_pst": "2025-01-18T01:00:00",
      "end_pst": "2025-01-19T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.075",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/PM25/+1",
      "start_pst": "2025-01-18T01:00:00",
      "end_pst": "2025-01-19T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.5367876521739130434782608695652173913043478260870",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/NO2/+1",
      "start_pst": "2025-01-18T01:00:00",
      "end_pst": "2025-01-19T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.5304347826086956521739130434782608695652173913043",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/NO2/+1",
      "start_pst": "2025-01-18T01:00:00",
      "end_pst": "2025-01-19T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "16.46996",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/NO2/+1",
      "start_pst": "2025-01-18T01:00:00",
      "end_pst": "2025-01-19T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "16.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-18/NO2/+1",
      "start_pst": "2025-01-18T01:00:00",
      "end_pst": "2025-01-19T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.7287135541666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/PM25/-1",
      "start_pst": "2025-01-18T23:00:00",
      "end_pst": "2025-01-19T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.725",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/PM25/-1",
      "start_pst": "2025-01-18T23:00:00",
      "end_pst": "2025-01-19T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.1532879565217391304347826086956521739130434782609",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/NO2/-1",
      "start_pst": "2025-01-18T23:00:00",
      "end_pst": "2025-01-19T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.1434782608695652173913043478260869565217391304348",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/NO2/-1",
      "start_pst": "2025-01-18T23:00:00",
      "end_pst": "2025-01-19T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "17.27368",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/NO2/-1",
      "start_pst": "2025-01-18T23:00:00",
      "end_pst": "2025-01-19T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "17.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/NO2/-1",
      "start_pst": "2025-01-18T23:00:00",
      "end_pst": "2025-01-19T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.7084083208333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/PM25/+0",
      "start_pst": "2025-01-19T00:00:00",
      "end_pst": "2025-01-20T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.7041666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/PM25/+0",
      "start_pst": "2025-01-19T00:00:00",
      "end_pst": "2025-01-20T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.2296963913043478260869565217391304347826086956522",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/NO2/+0",
      "start_pst": "2025-01-19T00:00:00",
      "end_pst": "2025-01-20T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.2173913043478260869565217391304347826086956521739",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/NO2/+0",
      "start_pst": "2025-01-19T00:00:00",
      "end_pst": "2025-01-20T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "17.27368",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/NO2/+0",
      "start_pst": "2025-01-19T00:00:00",
      "end_pst": "2025-01-20T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "17.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/NO2/+0",
      "start_pst": "2025-01-19T00:00:00",
      "end_pst": "2025-01-20T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.5059618166666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/PM25/+1",
      "start_pst": "2025-01-19T01:00:00",
      "end_pst": "2025-01-20T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/PM25/+1",
      "start_pst": "2025-01-19T01:00:00",
      "end_pst": "2025-01-20T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.2499539130434782608695652173913043478260869565217",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/NO2/+1",
      "start_pst": "2025-01-19T01:00:00",
      "end_pst": "2025-01-20T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.2391304347826086956521739130434782608695652173913",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/NO2/+1",
      "start_pst": "2025-01-19T01:00:00",
      "end_pst": "2025-01-20T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "17.27368",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/NO2/+1",
      "start_pst": "2025-01-19T01:00:00",
      "end_pst": "2025-01-20T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "17.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-19/NO2/+1",
      "start_pst": "2025-01-19T01:00:00",
      "end_pst": "2025-01-20T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.4814037041666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/PM25/-1",
      "start_pst": "2025-01-19T23:00:00",
      "end_pst": "2025-01-20T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.4708333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/PM25/-1",
      "start_pst": "2025-01-19T23:00:00",
      "end_pst": "2025-01-20T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.804427739130434782608695652173913043478260869565",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/NO2/-1",
      "start_pst": "2025-01-19T23:00:00",
      "end_pst": "2025-01-20T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.804347826086956521739130434782608695652173913043",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/NO2/-1",
      "start_pst": "2025-01-19T23:00:00",
      "end_pst": "2025-01-20T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "22.09073",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/NO2/-1",
      "start_pst": "2025-01-19T23:00:00",
      "end_pst": "2025-01-20T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "22.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/NO2/-1",
      "start_pst": "2025-01-19T23:00:00",
      "end_pst": "2025-01-20T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.5136247833333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/PM25/+0",
      "start_pst": "2025-01-20T00:00:00",
      "end_pst": "2025-01-21T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.5041666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/PM25/+0",
      "start_pst": "2025-01-20T00:00:00",
      "end_pst": "2025-01-21T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.734976130434782608695652173913043478260869565217",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/NO2/+0",
      "start_pst": "2025-01-20T00:00:00",
      "end_pst": "2025-01-21T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.739130434782608695652173913043478260869565217391",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/NO2/+0",
      "start_pst": "2025-01-20T00:00:00",
      "end_pst": "2025-01-21T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "22.09073",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/NO2/+0",
      "start_pst": "2025-01-20T00:00:00",
      "end_pst": "2025-01-21T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "22.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/NO2/+0",
      "start_pst": "2025-01-20T00:00:00",
      "end_pst": "2025-01-21T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.7538879708333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/PM25/+1",
      "start_pst": "2025-01-20T01:00:00",
      "end_pst": "2025-01-21T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.7458333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/PM25/+1",
      "start_pst": "2025-01-20T01:00:00",
      "end_pst": "2025-01-21T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.747406",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/NO2/+1",
      "start_pst": "2025-01-20T01:00:00",
      "end_pst": "2025-01-21T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.752173913043478260869565217391304347826086956522",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/NO2/+1",
      "start_pst": "2025-01-20T01:00:00",
      "end_pst": "2025-01-21T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "22.09073",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/NO2/+1",
      "start_pst": "2025-01-20T01:00:00",
      "end_pst": "2025-01-21T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "22.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-20/NO2/+1",
      "start_pst": "2025-01-20T01:00:00",
      "end_pst": "2025-01-21T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.0847344708333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/PM25/-1",
      "start_pst": "2025-01-20T23:00:00",
      "end_pst": "2025-01-21T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.0833333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/PM25/-1",
      "start_pst": "2025-01-20T23:00:00",
      "end_pst": "2025-01-21T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.495451869565217391304347826086956521739130434783",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/NO2/-1",
      "start_pst": "2025-01-20T23:00:00",
      "end_pst": "2025-01-21T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.504347826086956521739130434782608695652173913043",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/NO2/-1",
      "start_pst": "2025-01-20T23:00:00",
      "end_pst": "2025-01-21T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "19.45344",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/NO2/-1",
      "start_pst": "2025-01-20T23:00:00",
      "end_pst": "2025-01-21T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "19.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/NO2/-1",
      "start_pst": "2025-01-20T23:00:00",
      "end_pst": "2025-01-21T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.8355900541666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/PM25/+0",
      "start_pst": "2025-01-21T00:00:00",
      "end_pst": "2025-01-22T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.8333333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/PM25/+0",
      "start_pst": "2025-01-21T00:00:00",
      "end_pst": "2025-01-22T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.369098739130434782608695652173913043478260869565",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/NO2/+0",
      "start_pst": "2025-01-21T00:00:00",
      "end_pst": "2025-01-22T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.373913043478260869565217391304347826086956521739",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/NO2/+0",
      "start_pst": "2025-01-21T00:00:00",
      "end_pst": "2025-01-22T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "19.45344",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/NO2/+0",
      "start_pst": "2025-01-21T00:00:00",
      "end_pst": "2025-01-22T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "19.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/NO2/+0",
      "start_pst": "2025-01-21T00:00:00",
      "end_pst": "2025-01-22T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.5061071583333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/PM25/+1",
      "start_pst": "2025-01-21T01:00:00",
      "end_pst": "2025-01-22T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.5041666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/PM25/+1",
      "start_pst": "2025-01-21T01:00:00",
      "end_pst": "2025-01-22T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.154658739130434782608695652173913043478260869565",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/NO2/+1",
      "start_pst": "2025-01-21T01:00:00",
      "end_pst": "2025-01-22T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.156521739130434782608695652173913043478260869565",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/NO2/+1",
      "start_pst": "2025-01-21T01:00:00",
      "end_pst": "2025-01-22T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "19.45344",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/NO2/+1",
      "start_pst": "2025-01-21T01:00:00",
      "end_pst": "2025-01-22T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "19.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-21/NO2/+1",
      "start_pst": "2025-01-21T01:00:00",
      "end_pst": "2025-01-22T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "5.5333674333333333333333333333333333333333333333333",
      "contrast": "0.4666325666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/PM25/-1",
      "start_pst": "2025-01-21T23:00:00",
      "end_pst": "2025-01-22T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "5.5375",
      "contrast": "0.4625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/PM25/-1",
      "start_pst": "2025-01-21T23:00:00",
      "end_pst": "2025-01-22T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "8.5135802173913043478260869565217391304347826086957",
      "contrast": "-1.5135802173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/NO2/-1",
      "start_pst": "2025-01-21T23:00:00",
      "end_pst": "2025-01-22T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "8.5043478260869565217391304347826086956521739130435",
      "contrast": "-1.5043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/NO2/-1",
      "start_pst": "2025-01-21T23:00:00",
      "end_pst": "2025-01-22T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "18.5246",
      "contrast": "-2.9246",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/NO2/-1",
      "start_pst": "2025-01-21T23:00:00",
      "end_pst": "2025-01-22T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "18.5",
      "contrast": "-2.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/NO2/-1",
      "start_pst": "2025-01-21T23:00:00",
      "end_pst": "2025-01-22T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "5.7641221458333333333333333333333333333333333333333",
      "contrast": "0.2358778541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/PM25/+0",
      "start_pst": "2025-01-22T00:00:00",
      "end_pst": "2025-01-23T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "5.7708333333333333333333333333333333333333333333333",
      "contrast": "0.2291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/PM25/+0",
      "start_pst": "2025-01-22T00:00:00",
      "end_pst": "2025-01-23T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "8.6700786086956521739130434782608695652173913043478",
      "contrast": "-1.6700786086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/NO2/+0",
      "start_pst": "2025-01-22T00:00:00",
      "end_pst": "2025-01-23T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "8.6608695652173913043478260869565217391304347826087",
      "contrast": "-1.6608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/NO2/+0",
      "start_pst": "2025-01-22T00:00:00",
      "end_pst": "2025-01-23T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "18.5246",
      "contrast": "-2.9246",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/NO2/+0",
      "start_pst": "2025-01-22T00:00:00",
      "end_pst": "2025-01-23T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "18.5",
      "contrast": "-2.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/NO2/+0",
      "start_pst": "2025-01-22T00:00:00",
      "end_pst": "2025-01-23T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "6.0474293208333333333333333333333333333333333333333",
      "contrast": "-0.0474293208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/PM25/+1",
      "start_pst": "2025-01-22T01:00:00",
      "end_pst": "2025-01-23T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "6.0541666666666666666666666666666666666666666666667",
      "contrast": "-0.0541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/PM25/+1",
      "start_pst": "2025-01-22T01:00:00",
      "end_pst": "2025-01-23T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "8.8701628260869565217391304347826086956521739130435",
      "contrast": "-1.8701628260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/NO2/+1",
      "start_pst": "2025-01-22T01:00:00",
      "end_pst": "2025-01-23T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "8.8608695652173913043478260869565217391304347826087",
      "contrast": "-1.8608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/NO2/+1",
      "start_pst": "2025-01-22T01:00:00",
      "end_pst": "2025-01-23T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "18.5246",
      "contrast": "-2.9246",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/NO2/+1",
      "start_pst": "2025-01-22T01:00:00",
      "end_pst": "2025-01-23T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "18.5",
      "contrast": "-2.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-22/NO2/+1",
      "start_pst": "2025-01-22T01:00:00",
      "end_pst": "2025-01-23T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.852655875",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/PM25/-1",
      "start_pst": "2025-01-22T23:00:00",
      "end_pst": "2025-01-23T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.8416666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/PM25/-1",
      "start_pst": "2025-01-22T23:00:00",
      "end_pst": "2025-01-23T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "10.830683173913043478260869565217391304347826086957",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/NO2/-1",
      "start_pst": "2025-01-22T23:00:00",
      "end_pst": "2025-01-23T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "10.826086956521739130434782608695652173913043478261",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/NO2/-1",
      "start_pst": "2025-01-22T23:00:00",
      "end_pst": "2025-01-23T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "15.01046",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/NO2/-1",
      "start_pst": "2025-01-22T23:00:00",
      "end_pst": "2025-01-23T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "15",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/NO2/-1",
      "start_pst": "2025-01-22T23:00:00",
      "end_pst": "2025-01-23T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.6717129041666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/PM25/+0",
      "start_pst": "2025-01-23T00:00:00",
      "end_pst": "2025-01-24T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.6583333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/PM25/+0",
      "start_pst": "2025-01-23T00:00:00",
      "end_pst": "2025-01-24T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "10.794405173913043478260869565217391304347826086957",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/NO2/+0",
      "start_pst": "2025-01-23T00:00:00",
      "end_pst": "2025-01-24T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "10.791304347826086956521739130434782608695652173913",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/NO2/+0",
      "start_pst": "2025-01-23T00:00:00",
      "end_pst": "2025-01-24T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "15.01046",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/NO2/+0",
      "start_pst": "2025-01-23T00:00:00",
      "end_pst": "2025-01-24T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "15",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/NO2/+0",
      "start_pst": "2025-01-23T00:00:00",
      "end_pst": "2025-01-24T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.4721825625",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/PM25/+1",
      "start_pst": "2025-01-23T01:00:00",
      "end_pst": "2025-01-24T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.4583333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/PM25/+1",
      "start_pst": "2025-01-23T01:00:00",
      "end_pst": "2025-01-24T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "10.775418782608695652173913043478260869565217391304",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/NO2/+1",
      "start_pst": "2025-01-23T01:00:00",
      "end_pst": "2025-01-24T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "10.773913043478260869565217391304347826086956521739",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/NO2/+1",
      "start_pst": "2025-01-23T01:00:00",
      "end_pst": "2025-01-24T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "15.01046",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/NO2/+1",
      "start_pst": "2025-01-23T01:00:00",
      "end_pst": "2025-01-24T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013 a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "15",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-01-23/NO2/+1",
      "start_pst": "2025-01-23T01:00:00",
      "end_pst": "2025-01-24T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.4202956708333333333333333333333333333333333333333",
      "contrast": "3.2797043291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/PM25/-1",
      "start_pst": "2025-01-23T23:00:00",
      "end_pst": "2025-01-24T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.425",
      "contrast": "3.275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/PM25/-1",
      "start_pst": "2025-01-23T23:00:00",
      "end_pst": "2025-01-24T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "7.2036659130434782608695652173913043478260869565217",
      "contrast": "-2.7036659130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/NO2/-1",
      "start_pst": "2025-01-23T23:00:00",
      "end_pst": "2025-01-24T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "7.2",
      "contrast": "-2.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/NO2/-1",
      "start_pst": "2025-01-23T23:00:00",
      "end_pst": "2025-01-24T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "18.01411",
      "contrast": "-6.51411",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/NO2/-1",
      "start_pst": "2025-01-23T23:00:00",
      "end_pst": "2025-01-24T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "18",
      "contrast": "-6.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/NO2/-1",
      "start_pst": "2025-01-23T23:00:00",
      "end_pst": "2025-01-24T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.3385141833333333333333333333333333333333333333333",
      "contrast": "3.3614858166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/PM25/+0",
      "start_pst": "2025-01-24T00:00:00",
      "end_pst": "2025-01-25T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.3458333333333333333333333333333333333333333333333",
      "contrast": "3.3541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/PM25/+0",
      "start_pst": "2025-01-24T00:00:00",
      "end_pst": "2025-01-25T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "7.2154783478260869565217391304347826086956521739130",
      "contrast": "-2.7154783478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/NO2/+0",
      "start_pst": "2025-01-24T00:00:00",
      "end_pst": "2025-01-25T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "7.2130434782608695652173913043478260869565217391304",
      "contrast": "-2.7130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/NO2/+0",
      "start_pst": "2025-01-24T00:00:00",
      "end_pst": "2025-01-25T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "18.01411",
      "contrast": "-6.51411",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/NO2/+0",
      "start_pst": "2025-01-24T00:00:00",
      "end_pst": "2025-01-25T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "18",
      "contrast": "-6.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/NO2/+0",
      "start_pst": "2025-01-24T00:00:00",
      "end_pst": "2025-01-25T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.2160418958333333333333333333333333333333333333333",
      "contrast": "3.4839581041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/PM25/+1",
      "start_pst": "2025-01-24T01:00:00",
      "end_pst": "2025-01-25T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.2208333333333333333333333333333333333333333333333",
      "contrast": "3.4791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/PM25/+1",
      "start_pst": "2025-01-24T01:00:00",
      "end_pst": "2025-01-25T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "7.1778719130434782608695652173913043478260869565217",
      "contrast": "-2.6778719130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/NO2/+1",
      "start_pst": "2025-01-24T01:00:00",
      "end_pst": "2025-01-25T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "7.1739130434782608695652173913043478260869565217391",
      "contrast": "-2.6739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/NO2/+1",
      "start_pst": "2025-01-24T01:00:00",
      "end_pst": "2025-01-25T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "18.01411",
      "contrast": "-6.51411",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/NO2/+1",
      "start_pst": "2025-01-24T01:00:00",
      "end_pst": "2025-01-25T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "18",
      "contrast": "-6.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-24/NO2/+1",
      "start_pst": "2025-01-24T01:00:00",
      "end_pst": "2025-01-25T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.6785057583333333333333333333333333333333333333333",
      "contrast": "1.2214942416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/PM25/-1",
      "start_pst": "2025-01-24T23:00:00",
      "end_pst": "2025-01-25T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.6833333333333333333333333333333333333333333333333",
      "contrast": "1.2166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/PM25/-1",
      "start_pst": "2025-01-24T23:00:00",
      "end_pst": "2025-01-25T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.3",
      "town": "9.0312035217391304347826086956521739130434782608696",
      "contrast": "-6.7312035217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/NO2/-1",
      "start_pst": "2025-01-24T23:00:00",
      "end_pst": "2025-01-25T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.3",
      "town": "9.0217391304347826086956521739130434782608695652174",
      "contrast": "-6.7217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/NO2/-1",
      "start_pst": "2025-01-24T23:00:00",
      "end_pst": "2025-01-25T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "20.33002",
      "contrast": "-13.23002",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/NO2/-1",
      "start_pst": "2025-01-24T23:00:00",
      "end_pst": "2025-01-25T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "20.3",
      "contrast": "-13.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/NO2/-1",
      "start_pst": "2025-01-24T23:00:00",
      "end_pst": "2025-01-25T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.63828655",
      "contrast": "1.26171345",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/PM25/+0",
      "start_pst": "2025-01-25T00:00:00",
      "end_pst": "2025-01-26T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.6416666666666666666666666666666666666666666666667",
      "contrast": "1.2583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/PM25/+0",
      "start_pst": "2025-01-25T00:00:00",
      "end_pst": "2025-01-26T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.3",
      "town": "8.7919843478260869565217391304347826086956521739130",
      "contrast": "-6.4919843478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/NO2/+0",
      "start_pst": "2025-01-25T00:00:00",
      "end_pst": "2025-01-26T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.3",
      "town": "8.7826086956521739130434782608695652173913043478261",
      "contrast": "-6.4826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/NO2/+0",
      "start_pst": "2025-01-25T00:00:00",
      "end_pst": "2025-01-26T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "20.33002",
      "contrast": "-13.23002",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/NO2/+0",
      "start_pst": "2025-01-25T00:00:00",
      "end_pst": "2025-01-26T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "20.3",
      "contrast": "-13.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/NO2/+0",
      "start_pst": "2025-01-25T00:00:00",
      "end_pst": "2025-01-26T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.6780651416666666666666666666666666666666666666667",
      "contrast": "1.2219348583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/PM25/+1",
      "start_pst": "2025-01-25T01:00:00",
      "end_pst": "2025-01-26T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.6833333333333333333333333333333333333333333333333",
      "contrast": "1.2166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/PM25/+1",
      "start_pst": "2025-01-25T01:00:00",
      "end_pst": "2025-01-26T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.3",
      "town": "8.7143350869565217391304347826086956521739130434783",
      "contrast": "-6.4143350869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/NO2/+1",
      "start_pst": "2025-01-25T01:00:00",
      "end_pst": "2025-01-26T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.3",
      "town": "8.7043478260869565217391304347826086956521739130435",
      "contrast": "-6.4043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/NO2/+1",
      "start_pst": "2025-01-25T01:00:00",
      "end_pst": "2025-01-26T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "20.33002",
      "contrast": "-13.23002",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/NO2/+1",
      "start_pst": "2025-01-25T01:00:00",
      "end_pst": "2025-01-26T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "20.3",
      "contrast": "-13.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-25/NO2/+1",
      "start_pst": "2025-01-25T01:00:00",
      "end_pst": "2025-01-26T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "6.83377165",
      "contrast": "-0.33377165",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/PM25/-1",
      "start_pst": "2025-01-25T23:00:00",
      "end_pst": "2025-01-26T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "6.8333333333333333333333333333333333333333333333333",
      "contrast": "-0.3333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/PM25/-1",
      "start_pst": "2025-01-25T23:00:00",
      "end_pst": "2025-01-26T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "8.2593380434782608695652173913043478260869565217391",
      "contrast": "-3.4593380434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/NO2/-1",
      "start_pst": "2025-01-25T23:00:00",
      "end_pst": "2025-01-26T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "8.2565217391304347826086956521739130434782608695652",
      "contrast": "-3.4565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/NO2/-1",
      "start_pst": "2025-01-25T23:00:00",
      "end_pst": "2025-01-26T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "18.96545",
      "contrast": "1.13455",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/NO2/-1",
      "start_pst": "2025-01-25T23:00:00",
      "end_pst": "2025-01-26T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "19",
      "contrast": "1.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/NO2/-1",
      "start_pst": "2025-01-25T23:00:00",
      "end_pst": "2025-01-26T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "7.1452021458333333333333333333333333333333333333333",
      "contrast": "-0.6452021458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/PM25/+0",
      "start_pst": "2025-01-26T00:00:00",
      "end_pst": "2025-01-27T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "7.1458333333333333333333333333333333333333333333333",
      "contrast": "-0.6458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/PM25/+0",
      "start_pst": "2025-01-26T00:00:00",
      "end_pst": "2025-01-27T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "8.4736151739130434782608695652173913043478260869565",
      "contrast": "-3.6736151739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/NO2/+0",
      "start_pst": "2025-01-26T00:00:00",
      "end_pst": "2025-01-27T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "8.4695652173913043478260869565217391304347826086957",
      "contrast": "-3.6695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/NO2/+0",
      "start_pst": "2025-01-26T00:00:00",
      "end_pst": "2025-01-27T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "18.96545",
      "contrast": "1.13455",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/NO2/+0",
      "start_pst": "2025-01-26T00:00:00",
      "end_pst": "2025-01-27T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "19",
      "contrast": "1.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/NO2/+0",
      "start_pst": "2025-01-26T00:00:00",
      "end_pst": "2025-01-27T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "7.4363138333333333333333333333333333333333333333333",
      "contrast": "-0.9363138333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/PM25/+1",
      "start_pst": "2025-01-26T01:00:00",
      "end_pst": "2025-01-27T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "7.4375",
      "contrast": "-0.9375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/PM25/+1",
      "start_pst": "2025-01-26T01:00:00",
      "end_pst": "2025-01-27T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "8.582459",
      "contrast": "-3.782459",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/NO2/+1",
      "start_pst": "2025-01-26T01:00:00",
      "end_pst": "2025-01-27T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "8.5782608695652173913043478260869565217391304347826",
      "contrast": "-3.7782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/NO2/+1",
      "start_pst": "2025-01-26T01:00:00",
      "end_pst": "2025-01-27T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "18.96545",
      "contrast": "1.13455",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/NO2/+1",
      "start_pst": "2025-01-26T01:00:00",
      "end_pst": "2025-01-27T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "19",
      "contrast": "1.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-26/NO2/+1",
      "start_pst": "2025-01-26T01:00:00",
      "end_pst": "2025-01-27T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "6.2283880666666666666666666666666666666666666666667",
      "contrast": "2.5716119333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/PM25/-1",
      "start_pst": "2025-01-26T23:00:00",
      "end_pst": "2025-01-27T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "6.2375",
      "contrast": "2.5625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/PM25/-1",
      "start_pst": "2025-01-26T23:00:00",
      "end_pst": "2025-01-27T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "10.176534913043478260869565217391304347826086956522",
      "contrast": "-3.976534913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/NO2/-1",
      "start_pst": "2025-01-26T23:00:00",
      "end_pst": "2025-01-27T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "10.178260869565217391304347826086956521739130434783",
      "contrast": "-3.978260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/NO2/-1",
      "start_pst": "2025-01-26T23:00:00",
      "end_pst": "2025-01-27T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "22.12187",
      "contrast": "-9.12187",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/NO2/-1",
      "start_pst": "2025-01-26T23:00:00",
      "end_pst": "2025-01-27T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "22.1",
      "contrast": "-9.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/NO2/-1",
      "start_pst": "2025-01-26T23:00:00",
      "end_pst": "2025-01-27T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "6.0889077916666666666666666666666666666666666666667",
      "contrast": "2.7110922083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/PM25/+0",
      "start_pst": "2025-01-27T00:00:00",
      "end_pst": "2025-01-28T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "6.0958333333333333333333333333333333333333333333333",
      "contrast": "2.7041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/PM25/+0",
      "start_pst": "2025-01-27T00:00:00",
      "end_pst": "2025-01-28T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "10.217816130434782608695652173913043478260869565217",
      "contrast": "-4.017816130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/NO2/+0",
      "start_pst": "2025-01-27T00:00:00",
      "end_pst": "2025-01-28T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "10.221739130434782608695652173913043478260869565217",
      "contrast": "-4.021739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/NO2/+0",
      "start_pst": "2025-01-27T00:00:00",
      "end_pst": "2025-01-28T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "22.12187",
      "contrast": "-9.12187",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/NO2/+0",
      "start_pst": "2025-01-27T00:00:00",
      "end_pst": "2025-01-28T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "22.1",
      "contrast": "-9.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/NO2/+0",
      "start_pst": "2025-01-27T00:00:00",
      "end_pst": "2025-01-28T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "5.9689687833333333333333333333333333333333333333333",
      "contrast": "2.8310312166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/PM25/+1",
      "start_pst": "2025-01-27T01:00:00",
      "end_pst": "2025-01-28T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "5.975",
      "contrast": "2.825",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/PM25/+1",
      "start_pst": "2025-01-27T01:00:00",
      "end_pst": "2025-01-28T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "10.184234173913043478260869565217391304347826086957",
      "contrast": "-3.984234173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/NO2/+1",
      "start_pst": "2025-01-27T01:00:00",
      "end_pst": "2025-01-28T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "10.191304347826086956521739130434782608695652173913",
      "contrast": "-3.991304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/NO2/+1",
      "start_pst": "2025-01-27T01:00:00",
      "end_pst": "2025-01-28T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "22.12187",
      "contrast": "-9.12187",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/NO2/+1",
      "start_pst": "2025-01-27T01:00:00",
      "end_pst": "2025-01-28T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "22.1",
      "contrast": "-9.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-27/NO2/+1",
      "start_pst": "2025-01-27T01:00:00",
      "end_pst": "2025-01-28T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "6.1215984708333333333333333333333333333333333333333",
      "contrast": "1.6784015291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/PM25/-1",
      "start_pst": "2025-01-27T23:00:00",
      "end_pst": "2025-01-28T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "6.1208333333333333333333333333333333333333333333333",
      "contrast": "1.6791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/PM25/-1",
      "start_pst": "2025-01-27T23:00:00",
      "end_pst": "2025-01-28T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "11.548209217391304347826086956521739130434782608696",
      "contrast": "-4.048209217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/NO2/-1",
      "start_pst": "2025-01-27T23:00:00",
      "end_pst": "2025-01-28T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "11.543478260869565217391304347826086956521739130435",
      "contrast": "-4.043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/NO2/-1",
      "start_pst": "2025-01-27T23:00:00",
      "end_pst": "2025-01-28T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.8",
      "town": "18.94984",
      "contrast": "0.85016",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/NO2/-1",
      "start_pst": "2025-01-27T23:00:00",
      "end_pst": "2025-01-28T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.8",
      "town": "18.9",
      "contrast": "0.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/NO2/-1",
      "start_pst": "2025-01-27T23:00:00",
      "end_pst": "2025-01-28T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "6.2045549041666666666666666666666666666666666666667",
      "contrast": "1.5954450958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/PM25/+0",
      "start_pst": "2025-01-28T00:00:00",
      "end_pst": "2025-01-29T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "6.2041666666666666666666666666666666666666666666667",
      "contrast": "1.5958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/PM25/+0",
      "start_pst": "2025-01-28T00:00:00",
      "end_pst": "2025-01-29T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "11.480849391304347826086956521739130434782608695652",
      "contrast": "-3.980849391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/NO2/+0",
      "start_pst": "2025-01-28T00:00:00",
      "end_pst": "2025-01-29T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "11.473913043478260869565217391304347826086956521739",
      "contrast": "-3.973913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/NO2/+0",
      "start_pst": "2025-01-28T00:00:00",
      "end_pst": "2025-01-29T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.8",
      "town": "18.94984",
      "contrast": "0.85016",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/NO2/+0",
      "start_pst": "2025-01-28T00:00:00",
      "end_pst": "2025-01-29T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.8",
      "town": "18.9",
      "contrast": "0.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/NO2/+0",
      "start_pst": "2025-01-28T00:00:00",
      "end_pst": "2025-01-29T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "6.2435610166666666666666666666666666666666666666667",
      "contrast": "1.5564389833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/PM25/+1",
      "start_pst": "2025-01-28T01:00:00",
      "end_pst": "2025-01-29T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "6.2416666666666666666666666666666666666666666666667",
      "contrast": "1.5583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/PM25/+1",
      "start_pst": "2025-01-28T01:00:00",
      "end_pst": "2025-01-29T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "11.472008956521739130434782608695652173913043478261",
      "contrast": "-3.972008956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/NO2/+1",
      "start_pst": "2025-01-28T01:00:00",
      "end_pst": "2025-01-29T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "11.465217391304347826086956521739130434782608695652",
      "contrast": "-3.965217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/NO2/+1",
      "start_pst": "2025-01-28T01:00:00",
      "end_pst": "2025-01-29T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.8",
      "town": "18.94984",
      "contrast": "0.85016",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/NO2/+1",
      "start_pst": "2025-01-28T01:00:00",
      "end_pst": "2025-01-29T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.8",
      "town": "18.9",
      "contrast": "0.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-28/NO2/+1",
      "start_pst": "2025-01-28T01:00:00",
      "end_pst": "2025-01-29T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "9.0687218",
      "contrast": "-1.7687218",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/PM25/-1",
      "start_pst": "2025-01-28T23:00:00",
      "end_pst": "2025-01-29T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "9.0625",
      "contrast": "-1.7625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/PM25/-1",
      "start_pst": "2025-01-28T23:00:00",
      "end_pst": "2025-01-29T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "12.684350",
      "contrast": "-6.084350",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/NO2/-1",
      "start_pst": "2025-01-28T23:00:00",
      "end_pst": "2025-01-29T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "12.682608695652173913043478260869565217391304347826",
      "contrast": "-6.082608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/NO2/-1",
      "start_pst": "2025-01-28T23:00:00",
      "end_pst": "2025-01-29T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "26.5987",
      "contrast": "-13.6987",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/NO2/-1",
      "start_pst": "2025-01-28T23:00:00",
      "end_pst": "2025-01-29T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "26.6",
      "contrast": "-13.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/NO2/-1",
      "start_pst": "2025-01-28T23:00:00",
      "end_pst": "2025-01-29T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "9.3761785708333333333333333333333333333333333333333",
      "contrast": "-2.0761785708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/PM25/+0",
      "start_pst": "2025-01-29T00:00:00",
      "end_pst": "2025-01-30T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "9.3708333333333333333333333333333333333333333333333",
      "contrast": "-2.0708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/PM25/+0",
      "start_pst": "2025-01-29T00:00:00",
      "end_pst": "2025-01-30T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "12.911145608695652173913043478260869565217391304348",
      "contrast": "-6.311145608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/NO2/+0",
      "start_pst": "2025-01-29T00:00:00",
      "end_pst": "2025-01-30T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "12.908695652173913043478260869565217391304347826087",
      "contrast": "-6.308695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/NO2/+0",
      "start_pst": "2025-01-29T00:00:00",
      "end_pst": "2025-01-30T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "26.5987",
      "contrast": "-13.6987",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/NO2/+0",
      "start_pst": "2025-01-29T00:00:00",
      "end_pst": "2025-01-30T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "26.6",
      "contrast": "-13.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/NO2/+0",
      "start_pst": "2025-01-29T00:00:00",
      "end_pst": "2025-01-30T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "9.4643131791666666666666666666666666666666666666667",
      "contrast": "-2.1643131791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/PM25/+1",
      "start_pst": "2025-01-29T01:00:00",
      "end_pst": "2025-01-30T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "9.4625",
      "contrast": "-2.1625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/PM25/+1",
      "start_pst": "2025-01-29T01:00:00",
      "end_pst": "2025-01-30T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "13.176283521739130434782608695652173913043478260870",
      "contrast": "-6.576283521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/NO2/+1",
      "start_pst": "2025-01-29T01:00:00",
      "end_pst": "2025-01-30T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "13.173913043478260869565217391304347826086956521739",
      "contrast": "-6.573913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/NO2/+1",
      "start_pst": "2025-01-29T01:00:00",
      "end_pst": "2025-01-30T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "26.5987",
      "contrast": "-13.6987",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/NO2/+1",
      "start_pst": "2025-01-29T01:00:00",
      "end_pst": "2025-01-30T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "26.6",
      "contrast": "-13.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-29/NO2/+1",
      "start_pst": "2025-01-29T01:00:00",
      "end_pst": "2025-01-30T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "8.4774970083333333333333333333333333333333333333333",
      "contrast": "1.9225029916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/PM25/-1",
      "start_pst": "2025-01-29T23:00:00",
      "end_pst": "2025-01-30T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "8.4958333333333333333333333333333333333333333333333",
      "contrast": "1.9041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/PM25/-1",
      "start_pst": "2025-01-29T23:00:00",
      "end_pst": "2025-01-30T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "12.087961458333333333333333333333333333333333333333",
      "contrast": "-1.887961458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/NO2/-1",
      "start_pst": "2025-01-29T23:00:00",
      "end_pst": "2025-01-30T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "12.091666666666666666666666666666666666666666666667",
      "contrast": "-1.891666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/NO2/-1",
      "start_pst": "2025-01-29T23:00:00",
      "end_pst": "2025-01-30T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.4",
      "town": "14.35011",
      "contrast": "3.04989",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/NO2/-1",
      "start_pst": "2025-01-29T23:00:00",
      "end_pst": "2025-01-30T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.4",
      "town": "14.4",
      "contrast": "3.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/NO2/-1",
      "start_pst": "2025-01-29T23:00:00",
      "end_pst": "2025-01-30T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "7.8653787083333333333333333333333333333333333333333",
      "contrast": "2.5346212916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/PM25/+0",
      "start_pst": "2025-01-30T00:00:00",
      "end_pst": "2025-01-31T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "7.8833333333333333333333333333333333333333333333333",
      "contrast": "2.5166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/PM25/+0",
      "start_pst": "2025-01-30T00:00:00",
      "end_pst": "2025-01-31T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "12.042927173913043478260869565217391304347826086957",
      "contrast": "-1.842927173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/NO2/+0",
      "start_pst": "2025-01-30T00:00:00",
      "end_pst": "2025-01-31T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "12.047826086956521739130434782608695652173913043478",
      "contrast": "-1.847826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/NO2/+0",
      "start_pst": "2025-01-30T00:00:00",
      "end_pst": "2025-01-31T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.4",
      "town": "14.35011",
      "contrast": "3.04989",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/NO2/+0",
      "start_pst": "2025-01-30T00:00:00",
      "end_pst": "2025-01-31T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.4",
      "town": "14.4",
      "contrast": "3.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/NO2/+0",
      "start_pst": "2025-01-30T00:00:00",
      "end_pst": "2025-01-31T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "7.4776441333333333333333333333333333333333333333333",
      "contrast": "2.9223558666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/PM25/+1",
      "start_pst": "2025-01-30T01:00:00",
      "end_pst": "2025-01-31T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "7.4958333333333333333333333333333333333333333333333",
      "contrast": "2.9041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/PM25/+1",
      "start_pst": "2025-01-30T01:00:00",
      "end_pst": "2025-01-31T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "11.747406130434782608695652173913043478260869565217",
      "contrast": "-1.547406130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/NO2/+1",
      "start_pst": "2025-01-30T01:00:00",
      "end_pst": "2025-01-31T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "11.752173913043478260869565217391304347826086956522",
      "contrast": "-1.552173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/NO2/+1",
      "start_pst": "2025-01-30T01:00:00",
      "end_pst": "2025-01-31T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.4",
      "town": "14.35011",
      "contrast": "3.04989",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/NO2/+1",
      "start_pst": "2025-01-30T01:00:00",
      "end_pst": "2025-01-31T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.4",
      "town": "14.4",
      "contrast": "3.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-30/NO2/+1",
      "start_pst": "2025-01-30T01:00:00",
      "end_pst": "2025-01-31T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-31",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "1.5445184666666666666666666666666666666666666666667",
      "contrast": "3.5554815333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/PM25/-1",
      "start_pst": "2025-01-30T23:00:00",
      "end_pst": "2025-01-31T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-31",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "1.5458333333333333333333333333333333333333333333333",
      "contrast": "3.5541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/PM25/-1",
      "start_pst": "2025-01-30T23:00:00",
      "end_pst": "2025-01-31T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-31",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "8.1245171739130434782608695652173913043478260869565",
      "contrast": "-1.6245171739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/NO2/-1",
      "start_pst": "2025-01-30T23:00:00",
      "end_pst": "2025-01-31T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-31",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "8.1304347826086956521739130434782608695652173913043",
      "contrast": "-1.6304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/NO2/-1",
      "start_pst": "2025-01-30T23:00:00",
      "end_pst": "2025-01-31T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.3",
      "town": "14.15315",
      "contrast": "2.14685",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/NO2/-1",
      "start_pst": "2025-01-30T23:00:00",
      "end_pst": "2025-01-31T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.3",
      "town": "14.2",
      "contrast": "2.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/NO2/-1",
      "start_pst": "2025-01-30T23:00:00",
      "end_pst": "2025-01-31T23:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "1.3931355875",
      "contrast": "3.7068644125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/PM25/+0",
      "start_pst": "2025-01-31T00:00:00",
      "end_pst": "2025-02-01T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "1.3958333333333333333333333333333333333333333333333",
      "contrast": "3.7041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/PM25/+0",
      "start_pst": "2025-01-31T00:00:00",
      "end_pst": "2025-02-01T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-31",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "7.8397397916666666666666666666666666666666666666667",
      "contrast": "-1.3397397916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/NO2/+0",
      "start_pst": "2025-01-31T00:00:00",
      "end_pst": "2025-02-01T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-31",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "7.8458333333333333333333333333333333333333333333333",
      "contrast": "-1.3458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/NO2/+0",
      "start_pst": "2025-01-31T00:00:00",
      "end_pst": "2025-02-01T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.3",
      "town": "14.15315",
      "contrast": "2.14685",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/NO2/+0",
      "start_pst": "2025-01-31T00:00:00",
      "end_pst": "2025-02-01T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.3",
      "town": "14.2",
      "contrast": "2.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/NO2/+0",
      "start_pst": "2025-01-31T00:00:00",
      "end_pst": "2025-02-01T00:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "1.2830575041666666666666666666666666666666666666667",
      "contrast": "3.8169424958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/PM25/+1",
      "start_pst": "2025-01-31T01:00:00",
      "end_pst": "2025-02-01T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "1.2833333333333333333333333333333333333333333333333",
      "contrast": "3.8166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/PM25/+1",
      "start_pst": "2025-01-31T01:00:00",
      "end_pst": "2025-02-01T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-01-31",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "7.8903621304347826086956521739130434782608695652174",
      "contrast": "-1.3903621304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/NO2/+1",
      "start_pst": "2025-01-31T01:00:00",
      "end_pst": "2025-02-01T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-31",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "7.8956521739130434782608695652173913043478260869565",
      "contrast": "-1.3956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/NO2/+1",
      "start_pst": "2025-01-31T01:00:00",
      "end_pst": "2025-02-01T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-01-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.3",
      "town": "14.15315",
      "contrast": "2.14685",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/NO2/+1",
      "start_pst": "2025-01-31T01:00:00",
      "end_pst": "2025-02-01T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-01-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.3",
      "town": "14.2",
      "contrast": "2.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-01-31/NO2/+1",
      "start_pst": "2025-01-31T01:00:00",
      "end_pst": "2025-02-01T01:00:00",
      "onsite_source": {
        "month": "2025-01",
        "date_printed": "1/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/03/WLNG-AQMS-Monthly-Report-2025-01-January-2025_V.2_Final.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-01.pdf",
        "source_pdf_sha256": "d3c360d2407dc63495330dd5d0813495ff49e06e1065fa22e39085ad8ec16813",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-01/table-b1-air-native.csv",
        "source_csv_sha256": "170478d18855e4d0b3bb25b9c92ca2fbbdb20451ff9cf83b9b4a1e29f272a1f1",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "2.0060450666666666666666666666666666666666666666667",
      "contrast": "3.2939549333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/PM25/-1",
      "start_pst": "2025-01-31T23:00:00",
      "end_pst": "2025-02-01T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "2.0125",
      "contrast": "3.2875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/PM25/-1",
      "start_pst": "2025-01-31T23:00:00",
      "end_pst": "2025-02-01T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "4.9248539130434782608695652173913043478260869565217",
      "contrast": "-0.2248539130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/NO2/-1",
      "start_pst": "2025-01-31T23:00:00",
      "end_pst": "2025-02-01T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "4.9347826086956521739130434782608695652173913043478",
      "contrast": "-0.2347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/NO2/-1",
      "start_pst": "2025-01-31T23:00:00",
      "end_pst": "2025-02-01T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "10.8231",
      "contrast": "11.5769",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/NO2/-1",
      "start_pst": "2025-01-31T23:00:00",
      "end_pst": "2025-02-01T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "10.8",
      "contrast": "11.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/NO2/-1",
      "start_pst": "2025-01-31T23:00:00",
      "end_pst": "2025-02-01T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "2.2140007375",
      "contrast": "3.0859992625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/PM25/+0",
      "start_pst": "2025-02-01T00:00:00",
      "end_pst": "2025-02-02T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "2.2166666666666666666666666666666666666666666666667",
      "contrast": "3.0833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/PM25/+0",
      "start_pst": "2025-02-01T00:00:00",
      "end_pst": "2025-02-02T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "4.9998614347826086956521739130434782608695652173913",
      "contrast": "-0.2998614347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/NO2/+0",
      "start_pst": "2025-02-01T00:00:00",
      "end_pst": "2025-02-02T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "5.0086956521739130434782608695652173913043478260870",
      "contrast": "-0.3086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/NO2/+0",
      "start_pst": "2025-02-01T00:00:00",
      "end_pst": "2025-02-02T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "10.8231",
      "contrast": "11.5769",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/NO2/+0",
      "start_pst": "2025-02-01T00:00:00",
      "end_pst": "2025-02-02T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "10.8",
      "contrast": "11.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/NO2/+0",
      "start_pst": "2025-02-01T00:00:00",
      "end_pst": "2025-02-02T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "2.2601460291666666666666666666666666666666666666667",
      "contrast": "3.0398539708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/PM25/+1",
      "start_pst": "2025-02-01T01:00:00",
      "end_pst": "2025-02-02T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "2.2625",
      "contrast": "3.0375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/PM25/+1",
      "start_pst": "2025-02-01T01:00:00",
      "end_pst": "2025-02-02T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "4.8403489166666666666666666666666666666666666666667",
      "contrast": "-0.1403489166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/NO2/+1",
      "start_pst": "2025-02-01T01:00:00",
      "end_pst": "2025-02-02T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "4.85",
      "contrast": "-0.15",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/NO2/+1",
      "start_pst": "2025-02-01T01:00:00",
      "end_pst": "2025-02-02T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "10.8231",
      "contrast": "11.5769",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/NO2/+1",
      "start_pst": "2025-02-01T01:00:00",
      "end_pst": "2025-02-02T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "10.8",
      "contrast": "11.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-01/NO2/+1",
      "start_pst": "2025-02-01T01:00:00",
      "end_pst": "2025-02-02T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.5839755416666666666666666666666666666666666666667",
      "contrast": "3.6160244583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/PM25/-1",
      "start_pst": "2025-02-01T23:00:00",
      "end_pst": "2025-02-02T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.5708333333333333333333333333333333333333333333333",
      "contrast": "3.6291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/PM25/-1",
      "start_pst": "2025-02-01T23:00:00",
      "end_pst": "2025-02-02T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "1.4925758260869565217391304347826086956521739130435",
      "contrast": "4.0074241739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/NO2/-1",
      "start_pst": "2025-02-01T23:00:00",
      "end_pst": "2025-02-02T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "1.4956521739130434782608695652173913043478260869565",
      "contrast": "4.0043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/NO2/-1",
      "start_pst": "2025-02-01T23:00:00",
      "end_pst": "2025-02-02T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "3.015033",
      "contrast": "10.984967",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/NO2/-1",
      "start_pst": "2025-02-01T23:00:00",
      "end_pst": "2025-02-02T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "3",
      "contrast": "11.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/NO2/-1",
      "start_pst": "2025-02-01T23:00:00",
      "end_pst": "2025-02-02T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.4716188291666666666666666666666666666666666666667",
      "contrast": "3.7283811708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/PM25/+0",
      "start_pst": "2025-02-02T00:00:00",
      "end_pst": "2025-02-03T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.4625",
      "contrast": "3.7375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/PM25/+0",
      "start_pst": "2025-02-02T00:00:00",
      "end_pst": "2025-02-03T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "1.3934815217391304347826086956521739130434782608696",
      "contrast": "4.1065184782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/NO2/+0",
      "start_pst": "2025-02-02T00:00:00",
      "end_pst": "2025-02-03T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "1.3956521739130434782608695652173913043478260869565",
      "contrast": "4.1043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/NO2/+0",
      "start_pst": "2025-02-02T00:00:00",
      "end_pst": "2025-02-03T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "2.740254",
      "contrast": "11.259746",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/NO2/+0",
      "start_pst": "2025-02-02T00:00:00",
      "end_pst": "2025-02-03T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "2.7",
      "contrast": "11.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/NO2/+0",
      "start_pst": "2025-02-02T00:00:00",
      "end_pst": "2025-02-03T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.5358190",
      "contrast": "3.6641810",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/PM25/+1",
      "start_pst": "2025-02-02T01:00:00",
      "end_pst": "2025-02-03T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.5291666666666666666666666666666666666666666666667",
      "contrast": "3.6708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/PM25/+1",
      "start_pst": "2025-02-02T01:00:00",
      "end_pst": "2025-02-03T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "1.3720423913043478260869565217391304347826086956522",
      "contrast": "4.1279576086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/NO2/+1",
      "start_pst": "2025-02-02T01:00:00",
      "end_pst": "2025-02-03T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "1.3739130434782608695652173913043478260869565217391",
      "contrast": "4.1260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/NO2/+1",
      "start_pst": "2025-02-02T01:00:00",
      "end_pst": "2025-02-03T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "2.740254",
      "contrast": "11.259746",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/NO2/+1",
      "start_pst": "2025-02-02T01:00:00",
      "end_pst": "2025-02-03T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "2.7",
      "contrast": "11.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-02/NO2/+1",
      "start_pst": "2025-02-02T01:00:00",
      "end_pst": "2025-02-03T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "3.5629537347826086956521739130434782608695652173913",
      "contrast": "3.0370462652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/PM25/-1",
      "start_pst": "2025-02-02T23:00:00",
      "end_pst": "2025-02-03T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "3.5608695652173913043478260869565217391304347826087",
      "contrast": "3.0391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/PM25/-1",
      "start_pst": "2025-02-02T23:00:00",
      "end_pst": "2025-02-03T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "0.78291118181818181818181818181818181818181818181818",
      "contrast": "6.7170888181818181818181818181818181818181818181818",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/NO2/-1",
      "start_pst": "2025-02-02T23:00:00",
      "end_pst": "2025-02-03T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "0.77272727272727272727272727272727272727272727272727",
      "contrast": "6.7272727272727272727272727272727272727272727272727",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/NO2/-1",
      "start_pst": "2025-02-02T23:00:00",
      "end_pst": "2025-02-03T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "1.420917",
      "contrast": "10.879083",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/NO2/-1",
      "start_pst": "2025-02-02T23:00:00",
      "end_pst": "2025-02-03T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "1.4",
      "contrast": "10.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/NO2/-1",
      "start_pst": "2025-02-02T23:00:00",
      "end_pst": "2025-02-03T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "3.5781480391304347826086956521739130434782608695652",
      "contrast": "3.0218519608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/PM25/+0",
      "start_pst": "2025-02-03T00:00:00",
      "end_pst": "2025-02-04T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "3.5739130434782608695652173913043478260869565217391",
      "contrast": "3.0260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/PM25/+0",
      "start_pst": "2025-02-03T00:00:00",
      "end_pst": "2025-02-04T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "0.76864872727272727272727272727272727272727272727273",
      "contrast": "6.7313512727272727272727272727272727272727272727273",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/NO2/+0",
      "start_pst": "2025-02-03T00:00:00",
      "end_pst": "2025-02-04T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "0.75909090909090909090909090909090909090909090909091",
      "contrast": "6.7409090909090909090909090909090909090909090909091",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/NO2/+0",
      "start_pst": "2025-02-03T00:00:00",
      "end_pst": "2025-02-04T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "1.420917",
      "contrast": "10.879083",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/NO2/+0",
      "start_pst": "2025-02-03T00:00:00",
      "end_pst": "2025-02-04T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "1.4",
      "contrast": "10.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/NO2/+0",
      "start_pst": "2025-02-03T00:00:00",
      "end_pst": "2025-02-04T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "3.5637081217391304347826086956521739130434782608696",
      "contrast": "3.0362918782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/PM25/+1",
      "start_pst": "2025-02-03T01:00:00",
      "end_pst": "2025-02-04T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "3.5565217391304347826086956521739130434782608695652",
      "contrast": "3.0434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/PM25/+1",
      "start_pst": "2025-02-03T01:00:00",
      "end_pst": "2025-02-04T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "0.75685204545454545454545454545454545454545454545455",
      "contrast": "6.7431479545454545454545454545454545454545454545454",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/NO2/+1",
      "start_pst": "2025-02-03T01:00:00",
      "end_pst": "2025-02-04T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "0.74545454545454545454545454545454545454545454545455",
      "contrast": "6.7545454545454545454545454545454545454545454545454",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/NO2/+1",
      "start_pst": "2025-02-03T01:00:00",
      "end_pst": "2025-02-04T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "1.420917",
      "contrast": "10.879083",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/NO2/+1",
      "start_pst": "2025-02-03T01:00:00",
      "end_pst": "2025-02-04T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "1.4",
      "contrast": "10.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-03/NO2/+1",
      "start_pst": "2025-02-03T01:00:00",
      "end_pst": "2025-02-04T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.4002277166666666666666666666666666666666666666667",
      "contrast": "4.3997722833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-04/PM25/-1",
      "start_pst": "2025-02-03T23:00:00",
      "end_pst": "2025-02-04T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.4083333333333333333333333333333333333333333333333",
      "contrast": "4.3916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-04/PM25/-1",
      "start_pst": "2025-02-03T23:00:00",
      "end_pst": "2025-02-04T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-04/NO2/-1",
      "start_pst": "2025-02-03T23:00:00",
      "end_pst": "2025-02-04T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-04/NO2/-1",
      "start_pst": "2025-02-03T23:00:00",
      "end_pst": "2025-02-04T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-04/NO2/-1",
      "start_pst": "2025-02-03T23:00:00",
      "end_pst": "2025-02-04T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-04/NO2/-1",
      "start_pst": "2025-02-03T23:00:00",
      "end_pst": "2025-02-04T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.3501371333333333333333333333333333333333333333333",
      "contrast": "4.4498628666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-04/PM25/+0",
      "start_pst": "2025-02-04T00:00:00",
      "end_pst": "2025-02-05T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.3583333333333333333333333333333333333333333333333",
      "contrast": "4.4416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-04/PM25/+0",
      "start_pst": "2025-02-04T00:00:00",
      "end_pst": "2025-02-05T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 10,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-04/NO2/+0",
      "start_pst": "2025-02-04T00:00:00",
      "end_pst": "2025-02-05T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 10,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-04/NO2/+0",
      "start_pst": "2025-02-04T00:00:00",
      "end_pst": "2025-02-05T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 10,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-04/NO2/+0",
      "start_pst": "2025-02-04T00:00:00",
      "end_pst": "2025-02-05T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 10,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-04/NO2/+0",
      "start_pst": "2025-02-04T00:00:00",
      "end_pst": "2025-02-05T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.3058056333333333333333333333333333333333333333333",
      "contrast": "4.4941943666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-04/PM25/+1",
      "start_pst": "2025-02-04T01:00:00",
      "end_pst": "2025-02-05T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.3166666666666666666666666666666666666666666666667",
      "contrast": "4.4833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-04/PM25/+1",
      "start_pst": "2025-02-04T01:00:00",
      "end_pst": "2025-02-05T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 9,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-04/NO2/+1",
      "start_pst": "2025-02-04T01:00:00",
      "end_pst": "2025-02-05T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 9,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-04/NO2/+1",
      "start_pst": "2025-02-04T01:00:00",
      "end_pst": "2025-02-05T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 9,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-04/NO2/+1",
      "start_pst": "2025-02-04T01:00:00",
      "end_pst": "2025-02-05T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 9,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-04/NO2/+1",
      "start_pst": "2025-02-04T01:00:00",
      "end_pst": "2025-02-05T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "1.8332423",
      "contrast": "4.1667577",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-05/PM25/-1",
      "start_pst": "2025-02-04T23:00:00",
      "end_pst": "2025-02-05T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "1.8428571428571428571428571428571428571428571428571",
      "contrast": "4.1571428571428571428571428571428571428571428571429",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-05/PM25/-1",
      "start_pst": "2025-02-04T23:00:00",
      "end_pst": "2025-02-05T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 5,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-05/NO2/-1",
      "start_pst": "2025-02-04T23:00:00",
      "end_pst": "2025-02-05T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 5,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-05/NO2/-1",
      "start_pst": "2025-02-04T23:00:00",
      "end_pst": "2025-02-05T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 5,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-05/NO2/-1",
      "start_pst": "2025-02-04T23:00:00",
      "end_pst": "2025-02-05T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 5,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-05/NO2/-1",
      "start_pst": "2025-02-04T23:00:00",
      "end_pst": "2025-02-05T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "1.8636142523809523809523809523809523809523809523810",
      "contrast": "4.1363857476190476190476190476190476190476190476190",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-05/PM25/+0",
      "start_pst": "2025-02-05T00:00:00",
      "end_pst": "2025-02-06T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "1.8714285714285714285714285714285714285714285714286",
      "contrast": "4.1285714285714285714285714285714285714285714285714",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-05/PM25/+0",
      "start_pst": "2025-02-05T00:00:00",
      "end_pst": "2025-02-06T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 6,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-05/NO2/+0",
      "start_pst": "2025-02-05T00:00:00",
      "end_pst": "2025-02-06T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 6,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-05/NO2/+0",
      "start_pst": "2025-02-05T00:00:00",
      "end_pst": "2025-02-06T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 6,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-05/NO2/+0",
      "start_pst": "2025-02-05T00:00:00",
      "end_pst": "2025-02-06T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 6,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-05/NO2/+0",
      "start_pst": "2025-02-05T00:00:00",
      "end_pst": "2025-02-06T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "1.8887946809523809523809523809523809523809523809524",
      "contrast": "4.1112053190476190476190476190476190476190476190476",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-05/PM25/+1",
      "start_pst": "2025-02-05T01:00:00",
      "end_pst": "2025-02-06T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "1.8952380952380952380952380952380952380952380952381",
      "contrast": "4.1047619047619047619047619047619047619047619047619",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-05/PM25/+1",
      "start_pst": "2025-02-05T01:00:00",
      "end_pst": "2025-02-06T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 7,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-05/NO2/+1",
      "start_pst": "2025-02-05T01:00:00",
      "end_pst": "2025-02-06T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 7,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-05/NO2/+1",
      "start_pst": "2025-02-05T01:00:00",
      "end_pst": "2025-02-06T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 7,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-05/NO2/+1",
      "start_pst": "2025-02-05T01:00:00",
      "end_pst": "2025-02-06T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 7,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-05/NO2/+1",
      "start_pst": "2025-02-05T01:00:00",
      "end_pst": "2025-02-06T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.16860435",
      "contrast": "3.33139565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/PM25/-1",
      "start_pst": "2025-02-05T23:00:00",
      "end_pst": "2025-02-06T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.1625",
      "contrast": "3.3375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/PM25/-1",
      "start_pst": "2025-02-05T23:00:00",
      "end_pst": "2025-02-06T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "1.6351969695652173913043478260869565217391304347826",
      "contrast": "5.2648030304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/NO2/-1",
      "start_pst": "2025-02-05T23:00:00",
      "end_pst": "2025-02-06T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "1.6391304347826086956521739130434782608695652173913",
      "contrast": "5.2608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/NO2/-1",
      "start_pst": "2025-02-05T23:00:00",
      "end_pst": "2025-02-06T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "2.9724331",
      "contrast": "10.0275669",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/NO2/-1",
      "start_pst": "2025-02-05T23:00:00",
      "end_pst": "2025-02-06T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "3",
      "contrast": "10.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/NO2/-1",
      "start_pst": "2025-02-05T23:00:00",
      "end_pst": "2025-02-06T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.1576111458333333333333333333333333333333333333333",
      "contrast": "3.3423888541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/PM25/+0",
      "start_pst": "2025-02-06T00:00:00",
      "end_pst": "2025-02-07T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.1541666666666666666666666666666666666666666666667",
      "contrast": "3.3458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/PM25/+0",
      "start_pst": "2025-02-06T00:00:00",
      "end_pst": "2025-02-07T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "1.6665715347826086956521739130434782608695652173913",
      "contrast": "5.2334284652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/NO2/+0",
      "start_pst": "2025-02-06T00:00:00",
      "end_pst": "2025-02-07T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "1.6695652173913043478260869565217391304347826086957",
      "contrast": "5.2304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/NO2/+0",
      "start_pst": "2025-02-06T00:00:00",
      "end_pst": "2025-02-07T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "2.9724331",
      "contrast": "10.0275669",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/NO2/+0",
      "start_pst": "2025-02-06T00:00:00",
      "end_pst": "2025-02-07T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "3",
      "contrast": "10.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/NO2/+0",
      "start_pst": "2025-02-06T00:00:00",
      "end_pst": "2025-02-07T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.1774471083333333333333333333333333333333333333333",
      "contrast": "3.3225528916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/PM25/+1",
      "start_pst": "2025-02-06T01:00:00",
      "end_pst": "2025-02-07T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.175",
      "contrast": "3.325",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/PM25/+1",
      "start_pst": "2025-02-06T01:00:00",
      "end_pst": "2025-02-07T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "1.7275673608695652173913043478260869565217391304348",
      "contrast": "5.1724326391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/NO2/+1",
      "start_pst": "2025-02-06T01:00:00",
      "end_pst": "2025-02-07T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "1.7304347826086956521739130434782608695652173913043",
      "contrast": "5.1695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/NO2/+1",
      "start_pst": "2025-02-06T01:00:00",
      "end_pst": "2025-02-07T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "2.9724331",
      "contrast": "10.0275669",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/NO2/+1",
      "start_pst": "2025-02-06T01:00:00",
      "end_pst": "2025-02-07T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "3",
      "contrast": "10.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-06/NO2/+1",
      "start_pst": "2025-02-06T01:00:00",
      "end_pst": "2025-02-07T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "3.9535335791666666666666666666666666666666666666667",
      "contrast": "1.1464664208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/PM25/-1",
      "start_pst": "2025-02-06T23:00:00",
      "end_pst": "2025-02-07T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "3.9625",
      "contrast": "1.1375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/PM25/-1",
      "start_pst": "2025-02-06T23:00:00",
      "end_pst": "2025-02-07T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "8.5099455565217391304347826086956521739130434782609",
      "contrast": "-3.1099455565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/NO2/-1",
      "start_pst": "2025-02-06T23:00:00",
      "end_pst": "2025-02-07T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "8.5086956521739130434782608695652173913043478260870",
      "contrast": "-3.1086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/NO2/-1",
      "start_pst": "2025-02-06T23:00:00",
      "end_pst": "2025-02-07T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "27.2966995",
      "contrast": "-14.8966995",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/NO2/-1",
      "start_pst": "2025-02-06T23:00:00",
      "end_pst": "2025-02-07T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "27.3",
      "contrast": "-14.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/NO2/-1",
      "start_pst": "2025-02-06T23:00:00",
      "end_pst": "2025-02-07T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "4.0520550708333333333333333333333333333333333333333",
      "contrast": "1.0479449291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/PM25/+0",
      "start_pst": "2025-02-07T00:00:00",
      "end_pst": "2025-02-08T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "4.0583333333333333333333333333333333333333333333333",
      "contrast": "1.0416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/PM25/+0",
      "start_pst": "2025-02-07T00:00:00",
      "end_pst": "2025-02-08T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "8.5942371173913043478260869565217391304347826086957",
      "contrast": "-3.1942371173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/NO2/+0",
      "start_pst": "2025-02-07T00:00:00",
      "end_pst": "2025-02-08T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "8.5913043478260869565217391304347826086956521739130",
      "contrast": "-3.1913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/NO2/+0",
      "start_pst": "2025-02-07T00:00:00",
      "end_pst": "2025-02-08T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "27.2966995",
      "contrast": "-14.8966995",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/NO2/+0",
      "start_pst": "2025-02-07T00:00:00",
      "end_pst": "2025-02-08T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "27.3",
      "contrast": "-14.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/NO2/+0",
      "start_pst": "2025-02-07T00:00:00",
      "end_pst": "2025-02-08T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "4.099652775",
      "contrast": "1.000347225",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/PM25/+1",
      "start_pst": "2025-02-07T01:00:00",
      "end_pst": "2025-02-08T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "4.1041666666666666666666666666666666666666666666667",
      "contrast": "0.9958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/PM25/+1",
      "start_pst": "2025-02-07T01:00:00",
      "end_pst": "2025-02-08T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "8.6164045521739130434782608695652173913043478260870",
      "contrast": "-3.2164045521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/NO2/+1",
      "start_pst": "2025-02-07T01:00:00",
      "end_pst": "2025-02-08T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "8.6130434782608695652173913043478260869565217391304",
      "contrast": "-3.2130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/NO2/+1",
      "start_pst": "2025-02-07T01:00:00",
      "end_pst": "2025-02-08T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "27.2966995",
      "contrast": "-14.8966995",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/NO2/+1",
      "start_pst": "2025-02-07T01:00:00",
      "end_pst": "2025-02-08T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "27.3",
      "contrast": "-14.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-07/NO2/+1",
      "start_pst": "2025-02-07T01:00:00",
      "end_pst": "2025-02-08T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "5.1181886625",
      "contrast": "-0.0181886625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/PM25/-1",
      "start_pst": "2025-02-07T23:00:00",
      "end_pst": "2025-02-08T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "5.1166666666666666666666666666666666666666666666667",
      "contrast": "-0.0166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/PM25/-1",
      "start_pst": "2025-02-07T23:00:00",
      "end_pst": "2025-02-08T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.0",
      "town": "6.1192829565217391304347826086956521739130434782609",
      "contrast": "-4.1192829565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/NO2/-1",
      "start_pst": "2025-02-07T23:00:00",
      "end_pst": "2025-02-08T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.0",
      "town": "6.1173913043478260869565217391304347826086956521739",
      "contrast": "-4.1173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/NO2/-1",
      "start_pst": "2025-02-07T23:00:00",
      "end_pst": "2025-02-08T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "21.9051704",
      "contrast": "-16.4051704",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/NO2/-1",
      "start_pst": "2025-02-07T23:00:00",
      "end_pst": "2025-02-08T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "21.9",
      "contrast": "-16.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/NO2/-1",
      "start_pst": "2025-02-07T23:00:00",
      "end_pst": "2025-02-08T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "5.06057225",
      "contrast": "0.03942775",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/PM25/+0",
      "start_pst": "2025-02-08T00:00:00",
      "end_pst": "2025-02-09T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "5.0625",
      "contrast": "0.0375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/PM25/+0",
      "start_pst": "2025-02-08T00:00:00",
      "end_pst": "2025-02-09T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.0",
      "town": "6.0420198304347826086956521739130434782608695652174",
      "contrast": "-4.0420198304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/NO2/+0",
      "start_pst": "2025-02-08T00:00:00",
      "end_pst": "2025-02-09T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.0",
      "town": "6.0434782608695652173913043478260869565217391304348",
      "contrast": "-4.0434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/NO2/+0",
      "start_pst": "2025-02-08T00:00:00",
      "end_pst": "2025-02-09T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "21.9051704",
      "contrast": "-16.4051704",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/NO2/+0",
      "start_pst": "2025-02-08T00:00:00",
      "end_pst": "2025-02-09T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "21.9",
      "contrast": "-16.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/NO2/+0",
      "start_pst": "2025-02-08T00:00:00",
      "end_pst": "2025-02-09T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "5.0024642083333333333333333333333333333333333333333",
      "contrast": "0.0975357916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/PM25/+1",
      "start_pst": "2025-02-08T01:00:00",
      "end_pst": "2025-02-09T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "5.0041666666666666666666666666666666666666666666667",
      "contrast": "0.0958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/PM25/+1",
      "start_pst": "2025-02-08T01:00:00",
      "end_pst": "2025-02-09T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.0",
      "town": "5.9781031782608695652173913043478260869565217391304",
      "contrast": "-3.9781031782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/NO2/+1",
      "start_pst": "2025-02-08T01:00:00",
      "end_pst": "2025-02-09T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.0",
      "town": "5.9782608695652173913043478260869565217391304347826",
      "contrast": "-3.9782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/NO2/+1",
      "start_pst": "2025-02-08T01:00:00",
      "end_pst": "2025-02-09T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "21.9051704",
      "contrast": "-16.4051704",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/NO2/+1",
      "start_pst": "2025-02-08T01:00:00",
      "end_pst": "2025-02-09T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "21.9",
      "contrast": "-16.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-08/NO2/+1",
      "start_pst": "2025-02-08T01:00:00",
      "end_pst": "2025-02-09T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "4.3494523291666666666666666666666666666666666666667",
      "contrast": "0.0505476708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/PM25/-1",
      "start_pst": "2025-02-08T23:00:00",
      "end_pst": "2025-02-09T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "4.3458333333333333333333333333333333333333333333333",
      "contrast": "0.0541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/PM25/-1",
      "start_pst": "2025-02-08T23:00:00",
      "end_pst": "2025-02-09T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "5.6957005391304347826086956521739130434782608695652",
      "contrast": "-2.0957005391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/NO2/-1",
      "start_pst": "2025-02-08T23:00:00",
      "end_pst": "2025-02-09T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "5.6913043478260869565217391304347826086956521739130",
      "contrast": "-2.0913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/NO2/-1",
      "start_pst": "2025-02-08T23:00:00",
      "end_pst": "2025-02-09T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "20.7134151",
      "contrast": "-13.3134151",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/NO2/-1",
      "start_pst": "2025-02-08T23:00:00",
      "end_pst": "2025-02-09T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "20.7",
      "contrast": "-13.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/NO2/-1",
      "start_pst": "2025-02-08T23:00:00",
      "end_pst": "2025-02-09T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "4.3672375791666666666666666666666666666666666666667",
      "contrast": "0.0327624208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/PM25/+0",
      "start_pst": "2025-02-09T00:00:00",
      "end_pst": "2025-02-10T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "4.3625",
      "contrast": "0.0375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/PM25/+0",
      "start_pst": "2025-02-09T00:00:00",
      "end_pst": "2025-02-10T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "6.1279921608695652173913043478260869565217391304348",
      "contrast": "-2.5279921608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/NO2/+0",
      "start_pst": "2025-02-09T00:00:00",
      "end_pst": "2025-02-10T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "6.1217391304347826086956521739130434782608695652174",
      "contrast": "-2.5217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/NO2/+0",
      "start_pst": "2025-02-09T00:00:00",
      "end_pst": "2025-02-10T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "20.7134151",
      "contrast": "-13.3134151",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/NO2/+0",
      "start_pst": "2025-02-09T00:00:00",
      "end_pst": "2025-02-10T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "20.7",
      "contrast": "-13.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/NO2/+0",
      "start_pst": "2025-02-09T00:00:00",
      "end_pst": "2025-02-10T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "4.4085832041666666666666666666666666666666666666667",
      "contrast": "-0.0085832041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/PM25/+1",
      "start_pst": "2025-02-09T01:00:00",
      "end_pst": "2025-02-10T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "4.4041666666666666666666666666666666666666666666667",
      "contrast": "-0.0041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/PM25/+1",
      "start_pst": "2025-02-09T01:00:00",
      "end_pst": "2025-02-10T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "6.3737882086956521739130434782608695652173913043478",
      "contrast": "-2.7737882086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/NO2/+1",
      "start_pst": "2025-02-09T01:00:00",
      "end_pst": "2025-02-10T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "6.3695652173913043478260869565217391304347826086957",
      "contrast": "-2.7695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/NO2/+1",
      "start_pst": "2025-02-09T01:00:00",
      "end_pst": "2025-02-10T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "20.7134151",
      "contrast": "-13.3134151",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/NO2/+1",
      "start_pst": "2025-02-09T01:00:00",
      "end_pst": "2025-02-10T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "20.7",
      "contrast": "-13.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-09/NO2/+1",
      "start_pst": "2025-02-09T01:00:00",
      "end_pst": "2025-02-10T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "2.10665495",
      "contrast": "3.19334505",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/PM25/-1",
      "start_pst": "2025-02-09T23:00:00",
      "end_pst": "2025-02-10T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "2.1041666666666666666666666666666666666666666666667",
      "contrast": "3.1958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/PM25/-1",
      "start_pst": "2025-02-09T23:00:00",
      "end_pst": "2025-02-10T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "4.7832342608695652173913043478260869565217391304348",
      "contrast": "-0.8832342608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/NO2/-1",
      "start_pst": "2025-02-09T23:00:00",
      "end_pst": "2025-02-10T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "4.7913043478260869565217391304347826086956521739130",
      "contrast": "-0.8913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/NO2/-1",
      "start_pst": "2025-02-09T23:00:00",
      "end_pst": "2025-02-10T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "12.1665211",
      "contrast": "-0.8665211",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/NO2/-1",
      "start_pst": "2025-02-09T23:00:00",
      "end_pst": "2025-02-10T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "12.2",
      "contrast": "-0.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/NO2/-1",
      "start_pst": "2025-02-09T23:00:00",
      "end_pst": "2025-02-10T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "2.157103825",
      "contrast": "3.142896175",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/PM25/+0",
      "start_pst": "2025-02-10T00:00:00",
      "end_pst": "2025-02-11T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "2.1541666666666666666666666666666666666666666666667",
      "contrast": "3.1458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/PM25/+0",
      "start_pst": "2025-02-10T00:00:00",
      "end_pst": "2025-02-11T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "4.4969116478260869565217391304347826086956521739130",
      "contrast": "-0.5969116478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/NO2/+0",
      "start_pst": "2025-02-10T00:00:00",
      "end_pst": "2025-02-11T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "4.5043478260869565217391304347826086956521739130435",
      "contrast": "-0.6043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/NO2/+0",
      "start_pst": "2025-02-10T00:00:00",
      "end_pst": "2025-02-11T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "12.1665211",
      "contrast": "-0.8665211",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/NO2/+0",
      "start_pst": "2025-02-10T00:00:00",
      "end_pst": "2025-02-11T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "12.2",
      "contrast": "-0.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/NO2/+0",
      "start_pst": "2025-02-10T00:00:00",
      "end_pst": "2025-02-11T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "2.0807412416666666666666666666666666666666666666667",
      "contrast": "3.2192587583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/PM25/+1",
      "start_pst": "2025-02-10T01:00:00",
      "end_pst": "2025-02-11T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "2.0791666666666666666666666666666666666666666666667",
      "contrast": "3.2208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/PM25/+1",
      "start_pst": "2025-02-10T01:00:00",
      "end_pst": "2025-02-11T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "4.3195407260869565217391304347826086956521739130435",
      "contrast": "-0.4195407260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/NO2/+1",
      "start_pst": "2025-02-10T01:00:00",
      "end_pst": "2025-02-11T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "4.3260869565217391304347826086956521739130434782609",
      "contrast": "-0.4260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/NO2/+1",
      "start_pst": "2025-02-10T01:00:00",
      "end_pst": "2025-02-11T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "12.1665211",
      "contrast": "-0.8665211",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/NO2/+1",
      "start_pst": "2025-02-10T01:00:00",
      "end_pst": "2025-02-11T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "12.2",
      "contrast": "-0.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-10/NO2/+1",
      "start_pst": "2025-02-10T01:00:00",
      "end_pst": "2025-02-11T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "4.1356874625",
      "contrast": "0.9643125375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/PM25/-1",
      "start_pst": "2025-02-10T23:00:00",
      "end_pst": "2025-02-11T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "4.1291666666666666666666666666666666666666666666667",
      "contrast": "0.9708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/PM25/-1",
      "start_pst": "2025-02-10T23:00:00",
      "end_pst": "2025-02-11T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.0",
      "town": "11.098700417391304347826086956521739130434782608696",
      "contrast": "-10.098700417391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/NO2/-1",
      "start_pst": "2025-02-10T23:00:00",
      "end_pst": "2025-02-11T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.0",
      "town": "11.095652173913043478260869565217391304347826086957",
      "contrast": "-10.095652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/NO2/-1",
      "start_pst": "2025-02-10T23:00:00",
      "end_pst": "2025-02-11T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "26.6188316",
      "contrast": "-22.6188316",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/NO2/-1",
      "start_pst": "2025-02-10T23:00:00",
      "end_pst": "2025-02-11T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "26.6",
      "contrast": "-22.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/NO2/-1",
      "start_pst": "2025-02-10T23:00:00",
      "end_pst": "2025-02-11T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "4.0809345458333333333333333333333333333333333333333",
      "contrast": "1.0190654541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/PM25/+0",
      "start_pst": "2025-02-11T00:00:00",
      "end_pst": "2025-02-12T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "4.075",
      "contrast": "1.025",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/PM25/+0",
      "start_pst": "2025-02-11T00:00:00",
      "end_pst": "2025-02-12T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.0",
      "town": "11.158775017391304347826086956521739130434782608696",
      "contrast": "-10.158775017391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/NO2/+0",
      "start_pst": "2025-02-11T00:00:00",
      "end_pst": "2025-02-12T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.0",
      "town": "11.156521739130434782608695652173913043478260869565",
      "contrast": "-10.156521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/NO2/+0",
      "start_pst": "2025-02-11T00:00:00",
      "end_pst": "2025-02-12T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "26.6188316",
      "contrast": "-22.6188316",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/NO2/+0",
      "start_pst": "2025-02-11T00:00:00",
      "end_pst": "2025-02-12T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "26.6",
      "contrast": "-22.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/NO2/+0",
      "start_pst": "2025-02-11T00:00:00",
      "end_pst": "2025-02-12T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "4.2533212958333333333333333333333333333333333333333",
      "contrast": "0.8466787041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/PM25/+1",
      "start_pst": "2025-02-11T01:00:00",
      "end_pst": "2025-02-12T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "4.2458333333333333333333333333333333333333333333333",
      "contrast": "0.8541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/PM25/+1",
      "start_pst": "2025-02-11T01:00:00",
      "end_pst": "2025-02-12T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.0",
      "town": "11.538021022727272727272727272727272727272727272727",
      "contrast": "-10.538021022727272727272727272727272727272727272727",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/NO2/+1",
      "start_pst": "2025-02-11T01:00:00",
      "end_pst": "2025-02-12T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.0",
      "town": "11.536363636363636363636363636363636363636363636364",
      "contrast": "-10.536363636363636363636363636363636363636363636364",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/NO2/+1",
      "start_pst": "2025-02-11T01:00:00",
      "end_pst": "2025-02-12T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "26.6188316",
      "contrast": "-22.6188316",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/NO2/+1",
      "start_pst": "2025-02-11T01:00:00",
      "end_pst": "2025-02-12T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "26.6",
      "contrast": "-22.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-11/NO2/+1",
      "start_pst": "2025-02-11T01:00:00",
      "end_pst": "2025-02-12T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "3.7276641583333333333333333333333333333333333333333",
      "contrast": "0.1723358416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-12/PM25/-1",
      "start_pst": "2025-02-11T23:00:00",
      "end_pst": "2025-02-12T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "3.7166666666666666666666666666666666666666666666667",
      "contrast": "0.1833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-12/PM25/-1",
      "start_pst": "2025-02-11T23:00:00",
      "end_pst": "2025-02-12T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "8.6690719130434782608695652173913043478260869565217",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-02-12/NO2/-1",
      "start_pst": "2025-02-11T23:00:00",
      "end_pst": "2025-02-12T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "8.6739130434782608695652173913043478260869565217391",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-02-12/NO2/-1",
      "start_pst": "2025-02-11T23:00:00",
      "end_pst": "2025-02-12T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "21.5480289",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-02-12/NO2/-1",
      "start_pst": "2025-02-11T23:00:00",
      "end_pst": "2025-02-12T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "21.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-02-12/NO2/-1",
      "start_pst": "2025-02-11T23:00:00",
      "end_pst": "2025-02-12T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "3.6547989916666666666666666666666666666666666666667",
      "contrast": "0.2452010083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-12/PM25/+0",
      "start_pst": "2025-02-12T00:00:00",
      "end_pst": "2025-02-13T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "3.6416666666666666666666666666666666666666666666667",
      "contrast": "0.2583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-12/PM25/+0",
      "start_pst": "2025-02-12T00:00:00",
      "end_pst": "2025-02-13T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "8.7723068636363636363636363636363636363636363636364",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-02-12/NO2/+0",
      "start_pst": "2025-02-12T00:00:00",
      "end_pst": "2025-02-13T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "8.7772727272727272727272727272727272727272727272727",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-02-12/NO2/+0",
      "start_pst": "2025-02-12T00:00:00",
      "end_pst": "2025-02-13T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "21.5480289",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-02-12/NO2/+0",
      "start_pst": "2025-02-12T00:00:00",
      "end_pst": "2025-02-13T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "21.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-02-12/NO2/+0",
      "start_pst": "2025-02-12T00:00:00",
      "end_pst": "2025-02-13T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "3.488081825",
      "contrast": "0.411918175",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-12/PM25/+1",
      "start_pst": "2025-02-12T01:00:00",
      "end_pst": "2025-02-13T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "3.475",
      "contrast": "0.425",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-12/PM25/+1",
      "start_pst": "2025-02-12T01:00:00",
      "end_pst": "2025-02-13T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "8.4496827826086956521739130434782608695652173913043",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-02-12/NO2/+1",
      "start_pst": "2025-02-12T01:00:00",
      "end_pst": "2025-02-13T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "8.4565217391304347826086956521739130434782608695652",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-02-12/NO2/+1",
      "start_pst": "2025-02-12T01:00:00",
      "end_pst": "2025-02-13T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "21.5480289",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-02-12/NO2/+1",
      "start_pst": "2025-02-12T01:00:00",
      "end_pst": "2025-02-13T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "21.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-02-12/NO2/+1",
      "start_pst": "2025-02-12T01:00:00",
      "end_pst": "2025-02-13T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.53021775",
      "contrast": "0.96978225",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/PM25/-1",
      "start_pst": "2025-02-12T23:00:00",
      "end_pst": "2025-02-13T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.5333333333333333333333333333333333333333333333333",
      "contrast": "0.9666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/PM25/-1",
      "start_pst": "2025-02-12T23:00:00",
      "end_pst": "2025-02-13T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "8.4171534636363636363636363636363636363636363636364",
      "contrast": "1.1828465363636363636363636363636363636363636363636",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/NO2/-1",
      "start_pst": "2025-02-12T23:00:00",
      "end_pst": "2025-02-13T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "8.4181818181818181818181818181818181818181818181818",
      "contrast": "1.1818181818181818181818181818181818181818181818182",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/NO2/-1",
      "start_pst": "2025-02-12T23:00:00",
      "end_pst": "2025-02-13T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "24.5553207",
      "contrast": "-8.6553207",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/NO2/-1",
      "start_pst": "2025-02-12T23:00:00",
      "end_pst": "2025-02-13T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "24.6",
      "contrast": "-8.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/NO2/-1",
      "start_pst": "2025-02-12T23:00:00",
      "end_pst": "2025-02-13T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.0758261791666666666666666666666666666666666666667",
      "contrast": "0.4241738208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/PM25/+0",
      "start_pst": "2025-02-13T00:00:00",
      "end_pst": "2025-02-14T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.0791666666666666666666666666666666666666666666667",
      "contrast": "0.4208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/PM25/+0",
      "start_pst": "2025-02-13T00:00:00",
      "end_pst": "2025-02-14T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "8.5475942130434782608695652173913043478260869565217",
      "contrast": "1.0524057869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/NO2/+0",
      "start_pst": "2025-02-13T00:00:00",
      "end_pst": "2025-02-14T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "8.5478260869565217391304347826086956521739130434783",
      "contrast": "1.0521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/NO2/+0",
      "start_pst": "2025-02-13T00:00:00",
      "end_pst": "2025-02-14T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "24.5553207",
      "contrast": "-8.6553207",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/NO2/+0",
      "start_pst": "2025-02-13T00:00:00",
      "end_pst": "2025-02-14T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "24.6",
      "contrast": "-8.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/NO2/+0",
      "start_pst": "2025-02-13T00:00:00",
      "end_pst": "2025-02-14T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.547725625",
      "contrast": "-0.047725625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/PM25/+1",
      "start_pst": "2025-02-13T01:00:00",
      "end_pst": "2025-02-14T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.55",
      "contrast": "-0.05",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/PM25/+1",
      "start_pst": "2025-02-13T01:00:00",
      "end_pst": "2025-02-14T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "9.0564807782608695652173913043478260869565217391304",
      "contrast": "0.5435192217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/NO2/+1",
      "start_pst": "2025-02-13T01:00:00",
      "end_pst": "2025-02-14T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "9.0565217391304347826086956521739130434782608695652",
      "contrast": "0.5434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/NO2/+1",
      "start_pst": "2025-02-13T01:00:00",
      "end_pst": "2025-02-14T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "24.5553207",
      "contrast": "-8.6553207",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/NO2/+1",
      "start_pst": "2025-02-13T01:00:00",
      "end_pst": "2025-02-14T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "24.6",
      "contrast": "-8.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-13/NO2/+1",
      "start_pst": "2025-02-13T01:00:00",
      "end_pst": "2025-02-14T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "7.5275203208333333333333333333333333333333333333333",
      "contrast": "-0.2275203208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/PM25/-1",
      "start_pst": "2025-02-13T23:00:00",
      "end_pst": "2025-02-14T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "7.5291666666666666666666666666666666666666666666667",
      "contrast": "-0.2291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/PM25/-1",
      "start_pst": "2025-02-13T23:00:00",
      "end_pst": "2025-02-14T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.8",
      "town": "11.939998334782608695652173913043478260869565217391",
      "contrast": "1.860001665217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/NO2/-1",
      "start_pst": "2025-02-13T23:00:00",
      "end_pst": "2025-02-14T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.8",
      "town": "11.947826086956521739130434782608695652173913043478",
      "contrast": "1.852173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/NO2/-1",
      "start_pst": "2025-02-13T23:00:00",
      "end_pst": "2025-02-14T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.2",
      "town": "21.1915607",
      "contrast": "5.0084393",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/NO2/-1",
      "start_pst": "2025-02-13T23:00:00",
      "end_pst": "2025-02-14T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.2",
      "town": "21.2",
      "contrast": "5.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/NO2/-1",
      "start_pst": "2025-02-13T23:00:00",
      "end_pst": "2025-02-14T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "7.4317798041666666666666666666666666666666666666667",
      "contrast": "-0.1317798041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/PM25/+0",
      "start_pst": "2025-02-14T00:00:00",
      "end_pst": "2025-02-15T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "7.4333333333333333333333333333333333333333333333333",
      "contrast": "-0.1333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/PM25/+0",
      "start_pst": "2025-02-14T00:00:00",
      "end_pst": "2025-02-15T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.8",
      "town": "12.004654134782608695652173913043478260869565217391",
      "contrast": "1.795345865217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/NO2/+0",
      "start_pst": "2025-02-14T00:00:00",
      "end_pst": "2025-02-15T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.8",
      "town": "12.013043478260869565217391304347826086956521739130",
      "contrast": "1.786956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/NO2/+0",
      "start_pst": "2025-02-14T00:00:00",
      "end_pst": "2025-02-15T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.2",
      "town": "21.1915607",
      "contrast": "5.0084393",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/NO2/+0",
      "start_pst": "2025-02-14T00:00:00",
      "end_pst": "2025-02-15T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.2",
      "town": "21.2",
      "contrast": "5.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/NO2/+0",
      "start_pst": "2025-02-14T00:00:00",
      "end_pst": "2025-02-15T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "7.2483918083333333333333333333333333333333333333333",
      "contrast": "0.0516081916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/PM25/+1",
      "start_pst": "2025-02-14T01:00:00",
      "end_pst": "2025-02-15T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "7.25",
      "contrast": "0.05",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/PM25/+1",
      "start_pst": "2025-02-14T01:00:00",
      "end_pst": "2025-02-15T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.8",
      "town": "11.898497456521739130434782608695652173913043478261",
      "contrast": "1.901502543478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/NO2/+1",
      "start_pst": "2025-02-14T01:00:00",
      "end_pst": "2025-02-15T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.8",
      "town": "11.904347826086956521739130434782608695652173913043",
      "contrast": "1.895652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/NO2/+1",
      "start_pst": "2025-02-14T01:00:00",
      "end_pst": "2025-02-15T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.2",
      "town": "21.1915607",
      "contrast": "5.0084393",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/NO2/+1",
      "start_pst": "2025-02-14T01:00:00",
      "end_pst": "2025-02-15T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.2",
      "town": "21.2",
      "contrast": "5.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-14/NO2/+1",
      "start_pst": "2025-02-14T01:00:00",
      "end_pst": "2025-02-15T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.32323965",
      "contrast": "2.17676035",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/PM25/-1",
      "start_pst": "2025-02-14T23:00:00",
      "end_pst": "2025-02-15T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.3166666666666666666666666666666666666666666666667",
      "contrast": "2.1833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/PM25/-1",
      "start_pst": "2025-02-14T23:00:00",
      "end_pst": "2025-02-15T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "3.5980360086956521739130434782608695652173913043478",
      "contrast": "5.1019639913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/NO2/-1",
      "start_pst": "2025-02-14T23:00:00",
      "end_pst": "2025-02-15T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "3.5913043478260869565217391304347826086956521739130",
      "contrast": "5.1086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/NO2/-1",
      "start_pst": "2025-02-14T23:00:00",
      "end_pst": "2025-02-15T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.8",
      "town": "12.9043741",
      "contrast": "2.8956259",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/NO2/-1",
      "start_pst": "2025-02-14T23:00:00",
      "end_pst": "2025-02-15T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.8",
      "town": "12.9",
      "contrast": "2.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/NO2/-1",
      "start_pst": "2025-02-14T23:00:00",
      "end_pst": "2025-02-15T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.9399763625",
      "contrast": "2.5600236375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/PM25/+0",
      "start_pst": "2025-02-15T00:00:00",
      "end_pst": "2025-02-16T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.9333333333333333333333333333333333333333333333333",
      "contrast": "2.5666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/PM25/+0",
      "start_pst": "2025-02-15T00:00:00",
      "end_pst": "2025-02-16T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "3.0808204826086956521739130434782608695652173913043",
      "contrast": "5.6191795173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/NO2/+0",
      "start_pst": "2025-02-15T00:00:00",
      "end_pst": "2025-02-16T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "3.0739130434782608695652173913043478260869565217391",
      "contrast": "5.6260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/NO2/+0",
      "start_pst": "2025-02-15T00:00:00",
      "end_pst": "2025-02-16T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.8",
      "town": "10.6147404",
      "contrast": "5.1852596",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/NO2/+0",
      "start_pst": "2025-02-15T00:00:00",
      "end_pst": "2025-02-16T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.8",
      "town": "10.6",
      "contrast": "5.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/NO2/+0",
      "start_pst": "2025-02-15T00:00:00",
      "end_pst": "2025-02-16T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.7050304083333333333333333333333333333333333333333",
      "contrast": "2.7949695916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/PM25/+1",
      "start_pst": "2025-02-15T01:00:00",
      "end_pst": "2025-02-16T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.7",
      "contrast": "2.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/PM25/+1",
      "start_pst": "2025-02-15T01:00:00",
      "end_pst": "2025-02-16T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "2.6661219",
      "contrast": "6.0338781",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/NO2/+1",
      "start_pst": "2025-02-15T01:00:00",
      "end_pst": "2025-02-16T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "2.6608695652173913043478260869565217391304347826087",
      "contrast": "6.0391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/NO2/+1",
      "start_pst": "2025-02-15T01:00:00",
      "end_pst": "2025-02-16T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.8",
      "town": "6.7689781",
      "contrast": "9.0310219",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/NO2/+1",
      "start_pst": "2025-02-15T01:00:00",
      "end_pst": "2025-02-16T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.8",
      "town": "6.8",
      "contrast": "9.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-15/NO2/+1",
      "start_pst": "2025-02-15T01:00:00",
      "end_pst": "2025-02-16T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.5986874291666666666666666666666666666666666666667",
      "contrast": "2.7013125708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/PM25/-1",
      "start_pst": "2025-02-15T23:00:00",
      "end_pst": "2025-02-16T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.5916666666666666666666666666666666666666666666667",
      "contrast": "2.7083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/PM25/-1",
      "start_pst": "2025-02-15T23:00:00",
      "end_pst": "2025-02-16T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "2.5663425652173913043478260869565217391304347826087",
      "contrast": "5.4336574347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/NO2/-1",
      "start_pst": "2025-02-15T23:00:00",
      "end_pst": "2025-02-16T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "2.5782608695652173913043478260869565217391304347826",
      "contrast": "5.4217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/NO2/-1",
      "start_pst": "2025-02-15T23:00:00",
      "end_pst": "2025-02-16T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "11.2880926",
      "contrast": "7.8119074",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/NO2/-1",
      "start_pst": "2025-02-15T23:00:00",
      "end_pst": "2025-02-16T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "11.3",
      "contrast": "7.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/NO2/-1",
      "start_pst": "2025-02-15T23:00:00",
      "end_pst": "2025-02-16T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.6813035583333333333333333333333333333333333333333",
      "contrast": "2.6186964416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/PM25/+0",
      "start_pst": "2025-02-16T00:00:00",
      "end_pst": "2025-02-17T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.675",
      "contrast": "2.625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/PM25/+0",
      "start_pst": "2025-02-16T00:00:00",
      "end_pst": "2025-02-17T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "2.6949286956521739130434782608695652173913043478261",
      "contrast": "5.3050713043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/NO2/+0",
      "start_pst": "2025-02-16T00:00:00",
      "end_pst": "2025-02-17T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "2.7086956521739130434782608695652173913043478260870",
      "contrast": "5.2913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/NO2/+0",
      "start_pst": "2025-02-16T00:00:00",
      "end_pst": "2025-02-17T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "11.2880926",
      "contrast": "7.8119074",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/NO2/+0",
      "start_pst": "2025-02-16T00:00:00",
      "end_pst": "2025-02-17T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "11.3",
      "contrast": "7.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/NO2/+0",
      "start_pst": "2025-02-16T00:00:00",
      "end_pst": "2025-02-17T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.6606575625",
      "contrast": "2.6393424375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/PM25/+1",
      "start_pst": "2025-02-16T01:00:00",
      "end_pst": "2025-02-17T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.6541666666666666666666666666666666666666666666667",
      "contrast": "2.6458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/PM25/+1",
      "start_pst": "2025-02-16T01:00:00",
      "end_pst": "2025-02-17T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "2.7395526521739130434782608695652173913043478260870",
      "contrast": "5.2604473478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/NO2/+1",
      "start_pst": "2025-02-16T01:00:00",
      "end_pst": "2025-02-17T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "2.7521739130434782608695652173913043478260869565217",
      "contrast": "5.2478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/NO2/+1",
      "start_pst": "2025-02-16T01:00:00",
      "end_pst": "2025-02-17T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "11.2880926",
      "contrast": "7.8119074",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/NO2/+1",
      "start_pst": "2025-02-16T01:00:00",
      "end_pst": "2025-02-17T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "11.3",
      "contrast": "7.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-16/NO2/+1",
      "start_pst": "2025-02-16T01:00:00",
      "end_pst": "2025-02-17T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "3.9347654291666666666666666666666666666666666666667",
      "contrast": "1.5652345708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/PM25/-1",
      "start_pst": "2025-02-16T23:00:00",
      "end_pst": "2025-02-17T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "3.9458333333333333333333333333333333333333333333333",
      "contrast": "1.5541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/PM25/-1",
      "start_pst": "2025-02-16T23:00:00",
      "end_pst": "2025-02-17T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.6655802913043478260869565217391304347826086956522",
      "contrast": "2.7344197086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/NO2/-1",
      "start_pst": "2025-02-16T23:00:00",
      "end_pst": "2025-02-17T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.6695652173913043478260869565217391304347826086957",
      "contrast": "2.7304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/NO2/-1",
      "start_pst": "2025-02-16T23:00:00",
      "end_pst": "2025-02-17T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "11.1588869",
      "contrast": "6.7411131",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/NO2/-1",
      "start_pst": "2025-02-16T23:00:00",
      "end_pst": "2025-02-17T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "11.2",
      "contrast": "6.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/NO2/-1",
      "start_pst": "2025-02-16T23:00:00",
      "end_pst": "2025-02-17T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.0382506375",
      "contrast": "1.4617493625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/PM25/+0",
      "start_pst": "2025-02-17T00:00:00",
      "end_pst": "2025-02-18T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.05",
      "contrast": "1.45",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/PM25/+0",
      "start_pst": "2025-02-17T00:00:00",
      "end_pst": "2025-02-18T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.7667767260869565217391304347826086956521739130435",
      "contrast": "2.6332232739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/NO2/+0",
      "start_pst": "2025-02-17T00:00:00",
      "end_pst": "2025-02-18T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.7695652173913043478260869565217391304347826086957",
      "contrast": "2.6304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/NO2/+0",
      "start_pst": "2025-02-17T00:00:00",
      "end_pst": "2025-02-18T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "11.1588869",
      "contrast": "6.7411131",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/NO2/+0",
      "start_pst": "2025-02-17T00:00:00",
      "end_pst": "2025-02-18T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "11.2",
      "contrast": "6.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/NO2/+0",
      "start_pst": "2025-02-17T00:00:00",
      "end_pst": "2025-02-18T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.1788965208333333333333333333333333333333333333333",
      "contrast": "1.3211034791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/PM25/+1",
      "start_pst": "2025-02-17T01:00:00",
      "end_pst": "2025-02-18T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.1916666666666666666666666666666666666666666666667",
      "contrast": "1.3083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/PM25/+1",
      "start_pst": "2025-02-17T01:00:00",
      "end_pst": "2025-02-18T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.8998802434782608695652173913043478260869565217391",
      "contrast": "2.5001197565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/NO2/+1",
      "start_pst": "2025-02-17T01:00:00",
      "end_pst": "2025-02-18T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.9043478260869565217391304347826086956521739130435",
      "contrast": "2.4956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/NO2/+1",
      "start_pst": "2025-02-17T01:00:00",
      "end_pst": "2025-02-18T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "11.1588869",
      "contrast": "6.7411131",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/NO2/+1",
      "start_pst": "2025-02-17T01:00:00",
      "end_pst": "2025-02-18T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "11.2",
      "contrast": "6.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-17/NO2/+1",
      "start_pst": "2025-02-17T01:00:00",
      "end_pst": "2025-02-18T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.0896492833333333333333333333333333333333333333333",
      "contrast": "2.0103507166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/PM25/-1",
      "start_pst": "2025-02-17T23:00:00",
      "end_pst": "2025-02-18T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.1",
      "contrast": "2.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/PM25/-1",
      "start_pst": "2025-02-17T23:00:00",
      "end_pst": "2025-02-18T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "5.8000685434782608695652173913043478260869565217391",
      "contrast": "5.0999314565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/NO2/-1",
      "start_pst": "2025-02-17T23:00:00",
      "end_pst": "2025-02-18T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "5.7956521739130434782608695652173913043478260869565",
      "contrast": "5.1043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/NO2/-1",
      "start_pst": "2025-02-17T23:00:00",
      "end_pst": "2025-02-18T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.5",
      "town": "17.3196716",
      "contrast": "3.1803284",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/NO2/-1",
      "start_pst": "2025-02-17T23:00:00",
      "end_pst": "2025-02-18T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.5",
      "town": "17.3",
      "contrast": "3.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/NO2/-1",
      "start_pst": "2025-02-17T23:00:00",
      "end_pst": "2025-02-18T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.815313825",
      "contrast": "2.284686175",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/PM25/+0",
      "start_pst": "2025-02-18T00:00:00",
      "end_pst": "2025-02-19T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.825",
      "contrast": "2.275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/PM25/+0",
      "start_pst": "2025-02-18T00:00:00",
      "end_pst": "2025-02-19T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "5.5654136304347826086956521739130434782608695652174",
      "contrast": "5.3345863695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/NO2/+0",
      "start_pst": "2025-02-18T00:00:00",
      "end_pst": "2025-02-19T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "5.5608695652173913043478260869565217391304347826087",
      "contrast": "5.3391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/NO2/+0",
      "start_pst": "2025-02-18T00:00:00",
      "end_pst": "2025-02-19T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.5",
      "town": "17.3196716",
      "contrast": "3.1803284",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/NO2/+0",
      "start_pst": "2025-02-18T00:00:00",
      "end_pst": "2025-02-19T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.5",
      "town": "17.3",
      "contrast": "3.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/NO2/+0",
      "start_pst": "2025-02-18T00:00:00",
      "end_pst": "2025-02-19T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.6250641916666666666666666666666666666666666666667",
      "contrast": "2.4749358083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/PM25/+1",
      "start_pst": "2025-02-18T01:00:00",
      "end_pst": "2025-02-19T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.6333333333333333333333333333333333333333333333333",
      "contrast": "2.4666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/PM25/+1",
      "start_pst": "2025-02-18T01:00:00",
      "end_pst": "2025-02-19T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "5.3770532869565217391304347826086956521739130434783",
      "contrast": "5.5229467130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/NO2/+1",
      "start_pst": "2025-02-18T01:00:00",
      "end_pst": "2025-02-19T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "5.3695652173913043478260869565217391304347826086957",
      "contrast": "5.5304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/NO2/+1",
      "start_pst": "2025-02-18T01:00:00",
      "end_pst": "2025-02-19T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.5",
      "town": "17.3196716",
      "contrast": "3.1803284",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/NO2/+1",
      "start_pst": "2025-02-18T01:00:00",
      "end_pst": "2025-02-19T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.5",
      "town": "17.3",
      "contrast": "3.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-18/NO2/+1",
      "start_pst": "2025-02-18T01:00:00",
      "end_pst": "2025-02-19T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "2.3786010708333333333333333333333333333333333333333",
      "contrast": "5.8213989291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/PM25/-1",
      "start_pst": "2025-02-18T23:00:00",
      "end_pst": "2025-02-19T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "2.3708333333333333333333333333333333333333333333333",
      "contrast": "5.8291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/PM25/-1",
      "start_pst": "2025-02-18T23:00:00",
      "end_pst": "2025-02-19T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "5.9412699739130434782608695652173913043478260869565",
      "contrast": "6.3587300260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/NO2/-1",
      "start_pst": "2025-02-18T23:00:00",
      "end_pst": "2025-02-19T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "5.9347826086956521739130434782608695652173913043478",
      "contrast": "6.3652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/NO2/-1",
      "start_pst": "2025-02-18T23:00:00",
      "end_pst": "2025-02-19T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.7",
      "town": "17.3581829",
      "contrast": "14.3418171",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/NO2/-1",
      "start_pst": "2025-02-18T23:00:00",
      "end_pst": "2025-02-19T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.7",
      "town": "17.4",
      "contrast": "14.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/NO2/-1",
      "start_pst": "2025-02-18T23:00:00",
      "end_pst": "2025-02-19T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "2.4730929041666666666666666666666666666666666666667",
      "contrast": "5.7269070958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/PM25/+0",
      "start_pst": "2025-02-19T00:00:00",
      "end_pst": "2025-02-20T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "2.4666666666666666666666666666666666666666666666667",
      "contrast": "5.7333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/PM25/+0",
      "start_pst": "2025-02-19T00:00:00",
      "end_pst": "2025-02-20T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "6.4149765391304347826086956521739130434782608695652",
      "contrast": "5.8850234608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/NO2/+0",
      "start_pst": "2025-02-19T00:00:00",
      "end_pst": "2025-02-20T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "6.4086956521739130434782608695652173913043478260870",
      "contrast": "5.8913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/NO2/+0",
      "start_pst": "2025-02-19T00:00:00",
      "end_pst": "2025-02-20T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.7",
      "town": "17.3581829",
      "contrast": "14.3418171",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/NO2/+0",
      "start_pst": "2025-02-19T00:00:00",
      "end_pst": "2025-02-20T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.7",
      "town": "17.4",
      "contrast": "14.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/NO2/+0",
      "start_pst": "2025-02-19T00:00:00",
      "end_pst": "2025-02-20T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "2.5830458625",
      "contrast": "5.6169541375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/PM25/+1",
      "start_pst": "2025-02-19T01:00:00",
      "end_pst": "2025-02-20T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "2.5791666666666666666666666666666666666666666666667",
      "contrast": "5.6208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/PM25/+1",
      "start_pst": "2025-02-19T01:00:00",
      "end_pst": "2025-02-20T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "6.7559249391304347826086956521739130434782608695652",
      "contrast": "5.5440750608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/NO2/+1",
      "start_pst": "2025-02-19T01:00:00",
      "end_pst": "2025-02-20T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "6.7521739130434782608695652173913043478260869565217",
      "contrast": "5.5478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/NO2/+1",
      "start_pst": "2025-02-19T01:00:00",
      "end_pst": "2025-02-20T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.7",
      "town": "17.3581829",
      "contrast": "14.3418171",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/NO2/+1",
      "start_pst": "2025-02-19T01:00:00",
      "end_pst": "2025-02-20T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.7",
      "town": "17.4",
      "contrast": "14.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-19/NO2/+1",
      "start_pst": "2025-02-19T01:00:00",
      "end_pst": "2025-02-20T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "4.1581772375",
      "contrast": "5.3418227625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/PM25/-1",
      "start_pst": "2025-02-19T23:00:00",
      "end_pst": "2025-02-20T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "4.1541666666666666666666666666666666666666666666667",
      "contrast": "5.3458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/PM25/-1",
      "start_pst": "2025-02-19T23:00:00",
      "end_pst": "2025-02-20T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "8.4960045217391304347826086956521739130434782608696",
      "contrast": "7.9039954782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/NO2/-1",
      "start_pst": "2025-02-19T23:00:00",
      "end_pst": "2025-02-20T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "8.4956521739130434782608695652173913043478260869565",
      "contrast": "7.9043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/NO2/-1",
      "start_pst": "2025-02-19T23:00:00",
      "end_pst": "2025-02-20T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.7",
      "town": "12.2648058",
      "contrast": "22.4351942",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/NO2/-1",
      "start_pst": "2025-02-19T23:00:00",
      "end_pst": "2025-02-20T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.7",
      "town": "12.3",
      "contrast": "22.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/NO2/-1",
      "start_pst": "2025-02-19T23:00:00",
      "end_pst": "2025-02-20T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "4.1322016125",
      "contrast": "5.3677983875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/PM25/+0",
      "start_pst": "2025-02-20T00:00:00",
      "end_pst": "2025-02-21T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "4.1291666666666666666666666666666666666666666666667",
      "contrast": "5.3708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/PM25/+0",
      "start_pst": "2025-02-20T00:00:00",
      "end_pst": "2025-02-21T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "8.1501916521739130434782608695652173913043478260870",
      "contrast": "8.2498083478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/NO2/+0",
      "start_pst": "2025-02-20T00:00:00",
      "end_pst": "2025-02-21T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "8.1478260869565217391304347826086956521739130434783",
      "contrast": "8.2521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/NO2/+0",
      "start_pst": "2025-02-20T00:00:00",
      "end_pst": "2025-02-21T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.7",
      "town": "12.2648058",
      "contrast": "22.4351942",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/NO2/+0",
      "start_pst": "2025-02-20T00:00:00",
      "end_pst": "2025-02-21T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.7",
      "town": "12.3",
      "contrast": "22.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/NO2/+0",
      "start_pst": "2025-02-20T00:00:00",
      "end_pst": "2025-02-21T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "4.0822298625",
      "contrast": "5.4177701375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/PM25/+1",
      "start_pst": "2025-02-20T01:00:00",
      "end_pst": "2025-02-21T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "4.0791666666666666666666666666666666666666666666667",
      "contrast": "5.4208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/PM25/+1",
      "start_pst": "2025-02-20T01:00:00",
      "end_pst": "2025-02-21T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "7.9390921173913043478260869565217391304347826086957",
      "contrast": "8.4609078826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/NO2/+1",
      "start_pst": "2025-02-20T01:00:00",
      "end_pst": "2025-02-21T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "7.9347826086956521739130434782608695652173913043478",
      "contrast": "8.4652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/NO2/+1",
      "start_pst": "2025-02-20T01:00:00",
      "end_pst": "2025-02-21T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.7",
      "town": "12.2648058",
      "contrast": "22.4351942",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/NO2/+1",
      "start_pst": "2025-02-20T01:00:00",
      "end_pst": "2025-02-21T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.7",
      "town": "12.3",
      "contrast": "22.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-20/NO2/+1",
      "start_pst": "2025-02-20T01:00:00",
      "end_pst": "2025-02-21T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "2.3248467291666666666666666666666666666666666666667",
      "contrast": "1.3751532708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/PM25/-1",
      "start_pst": "2025-02-20T23:00:00",
      "end_pst": "2025-02-21T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "2.325",
      "contrast": "1.375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/PM25/-1",
      "start_pst": "2025-02-20T23:00:00",
      "end_pst": "2025-02-21T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "5.3895675434782608695652173913043478260869565217391",
      "contrast": "9.2104324565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/NO2/-1",
      "start_pst": "2025-02-20T23:00:00",
      "end_pst": "2025-02-21T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "5.3826086956521739130434782608695652173913043478261",
      "contrast": "9.2173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/NO2/-1",
      "start_pst": "2025-02-20T23:00:00",
      "end_pst": "2025-02-21T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.1",
      "town": "10.51653",
      "contrast": "18.58347",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/NO2/-1",
      "start_pst": "2025-02-20T23:00:00",
      "end_pst": "2025-02-21T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.1",
      "town": "10.5",
      "contrast": "18.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/NO2/-1",
      "start_pst": "2025-02-20T23:00:00",
      "end_pst": "2025-02-21T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "2.442696475",
      "contrast": "1.257303525",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/PM25/+0",
      "start_pst": "2025-02-21T00:00:00",
      "end_pst": "2025-02-22T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "2.4416666666666666666666666666666666666666666666667",
      "contrast": "1.2583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/PM25/+0",
      "start_pst": "2025-02-21T00:00:00",
      "end_pst": "2025-02-22T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "5.5164414608695652173913043478260869565217391304348",
      "contrast": "9.0835585391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/NO2/+0",
      "start_pst": "2025-02-21T00:00:00",
      "end_pst": "2025-02-22T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "5.5130434782608695652173913043478260869565217391304",
      "contrast": "9.0869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/NO2/+0",
      "start_pst": "2025-02-21T00:00:00",
      "end_pst": "2025-02-22T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.1",
      "town": "10.51653",
      "contrast": "18.58347",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/NO2/+0",
      "start_pst": "2025-02-21T00:00:00",
      "end_pst": "2025-02-22T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.1",
      "town": "10.5",
      "contrast": "18.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/NO2/+0",
      "start_pst": "2025-02-21T00:00:00",
      "end_pst": "2025-02-22T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "2.5073595958333333333333333333333333333333333333333",
      "contrast": "1.1926404041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/PM25/+1",
      "start_pst": "2025-02-21T01:00:00",
      "end_pst": "2025-02-22T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "2.5041666666666666666666666666666666666666666666667",
      "contrast": "1.1958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/PM25/+1",
      "start_pst": "2025-02-21T01:00:00",
      "end_pst": "2025-02-22T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "5.6067677217391304347826086956521739130434782608696",
      "contrast": "8.9932322782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/NO2/+1",
      "start_pst": "2025-02-21T01:00:00",
      "end_pst": "2025-02-22T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "5.6043478260869565217391304347826086956521739130435",
      "contrast": "8.9956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/NO2/+1",
      "start_pst": "2025-02-21T01:00:00",
      "end_pst": "2025-02-22T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.1",
      "town": "10.51653",
      "contrast": "18.58347",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/NO2/+1",
      "start_pst": "2025-02-21T01:00:00",
      "end_pst": "2025-02-22T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.1",
      "town": "10.5",
      "contrast": "18.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-21/NO2/+1",
      "start_pst": "2025-02-21T01:00:00",
      "end_pst": "2025-02-22T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "3.6587273625",
      "contrast": "3.8412726375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/PM25/-1",
      "start_pst": "2025-02-21T23:00:00",
      "end_pst": "2025-02-22T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "3.6583333333333333333333333333333333333333333333333",
      "contrast": "3.8416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/PM25/-1",
      "start_pst": "2025-02-21T23:00:00",
      "end_pst": "2025-02-22T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.5",
      "town": "8.1347066695652173913043478260869565217391304347826",
      "contrast": "11.365293330434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/NO2/-1",
      "start_pst": "2025-02-21T23:00:00",
      "end_pst": "2025-02-22T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.5",
      "town": "8.1304347826086956521739130434782608695652173913043",
      "contrast": "11.369565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/NO2/-1",
      "start_pst": "2025-02-21T23:00:00",
      "end_pst": "2025-02-22T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "13.7078419",
      "contrast": "20.1921581",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/NO2/-1",
      "start_pst": "2025-02-21T23:00:00",
      "end_pst": "2025-02-22T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "13.7",
      "contrast": "20.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/NO2/-1",
      "start_pst": "2025-02-21T23:00:00",
      "end_pst": "2025-02-22T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "3.6702312375",
      "contrast": "3.8297687625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/PM25/+0",
      "start_pst": "2025-02-22T00:00:00",
      "end_pst": "2025-02-23T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "3.6708333333333333333333333333333333333333333333333",
      "contrast": "3.8291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/PM25/+0",
      "start_pst": "2025-02-22T00:00:00",
      "end_pst": "2025-02-23T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.5",
      "town": "8.3864120913043478260869565217391304347826086956522",
      "contrast": "11.113587908695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/NO2/+0",
      "start_pst": "2025-02-22T00:00:00",
      "end_pst": "2025-02-23T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.5",
      "town": "8.3782608695652173913043478260869565217391304347826",
      "contrast": "11.121739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/NO2/+0",
      "start_pst": "2025-02-22T00:00:00",
      "end_pst": "2025-02-23T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "13.7078419",
      "contrast": "20.1921581",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/NO2/+0",
      "start_pst": "2025-02-22T00:00:00",
      "end_pst": "2025-02-23T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "13.7",
      "contrast": "20.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/NO2/+0",
      "start_pst": "2025-02-22T00:00:00",
      "end_pst": "2025-02-23T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "3.6702458625",
      "contrast": "3.8297541375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/PM25/+1",
      "start_pst": "2025-02-22T01:00:00",
      "end_pst": "2025-02-23T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "3.6708333333333333333333333333333333333333333333333",
      "contrast": "3.8291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/PM25/+1",
      "start_pst": "2025-02-22T01:00:00",
      "end_pst": "2025-02-23T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.5",
      "town": "8.5613904695652173913043478260869565217391304347826",
      "contrast": "10.938609530434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/NO2/+1",
      "start_pst": "2025-02-22T01:00:00",
      "end_pst": "2025-02-23T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.5",
      "town": "8.5521739130434782608695652173913043478260869565217",
      "contrast": "10.947826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/NO2/+1",
      "start_pst": "2025-02-22T01:00:00",
      "end_pst": "2025-02-23T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "13.7078419",
      "contrast": "20.1921581",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/NO2/+1",
      "start_pst": "2025-02-22T01:00:00",
      "end_pst": "2025-02-23T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "13.7",
      "contrast": "20.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-22/NO2/+1",
      "start_pst": "2025-02-22T01:00:00",
      "end_pst": "2025-02-23T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "2.1772793333333333333333333333333333333333333333333",
      "contrast": "4.1227206666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/PM25/-1",
      "start_pst": "2025-02-22T23:00:00",
      "end_pst": "2025-02-23T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "2.1791666666666666666666666666666666666666666666667",
      "contrast": "4.1208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/PM25/-1",
      "start_pst": "2025-02-22T23:00:00",
      "end_pst": "2025-02-23T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "5.2206693913043478260869565217391304347826086956522",
      "contrast": "7.7793306086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/NO2/-1",
      "start_pst": "2025-02-22T23:00:00",
      "end_pst": "2025-02-23T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "5.2173913043478260869565217391304347826086956521739",
      "contrast": "7.7826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/NO2/-1",
      "start_pst": "2025-02-22T23:00:00",
      "end_pst": "2025-02-23T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.2",
      "town": "12.5452328",
      "contrast": "12.6547672",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/NO2/-1",
      "start_pst": "2025-02-22T23:00:00",
      "end_pst": "2025-02-23T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.2",
      "town": "12.5",
      "contrast": "12.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/NO2/-1",
      "start_pst": "2025-02-22T23:00:00",
      "end_pst": "2025-02-23T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "2.0188335375",
      "contrast": "4.2811664625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/PM25/+0",
      "start_pst": "2025-02-23T00:00:00",
      "end_pst": "2025-02-24T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "2.0208333333333333333333333333333333333333333333333",
      "contrast": "4.2791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/PM25/+0",
      "start_pst": "2025-02-23T00:00:00",
      "end_pst": "2025-02-24T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "4.8003133565217391304347826086956521739130434782609",
      "contrast": "8.1996866434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/NO2/+0",
      "start_pst": "2025-02-23T00:00:00",
      "end_pst": "2025-02-24T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "4.8",
      "contrast": "8.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/NO2/+0",
      "start_pst": "2025-02-23T00:00:00",
      "end_pst": "2025-02-24T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.2",
      "town": "10.591361",
      "contrast": "14.608639",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/NO2/+0",
      "start_pst": "2025-02-23T00:00:00",
      "end_pst": "2025-02-24T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.2",
      "town": "10.6",
      "contrast": "14.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/NO2/+0",
      "start_pst": "2025-02-23T00:00:00",
      "end_pst": "2025-02-24T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "1.9639786666666666666666666666666666666666666666667",
      "contrast": "4.3360213333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/PM25/+1",
      "start_pst": "2025-02-23T01:00:00",
      "end_pst": "2025-02-24T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "1.9666666666666666666666666666666666666666666666667",
      "contrast": "4.3333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/PM25/+1",
      "start_pst": "2025-02-23T01:00:00",
      "end_pst": "2025-02-24T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "4.4578105043478260869565217391304347826086956521739",
      "contrast": "8.5421894956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/NO2/+1",
      "start_pst": "2025-02-23T01:00:00",
      "end_pst": "2025-02-24T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "4.4565217391304347826086956521739130434782608695652",
      "contrast": "8.5434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/NO2/+1",
      "start_pst": "2025-02-23T01:00:00",
      "end_pst": "2025-02-24T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.2",
      "town": "10.591361",
      "contrast": "14.608639",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/NO2/+1",
      "start_pst": "2025-02-23T01:00:00",
      "end_pst": "2025-02-24T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.2",
      "town": "10.6",
      "contrast": "14.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-23/NO2/+1",
      "start_pst": "2025-02-23T01:00:00",
      "end_pst": "2025-02-24T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.6204545541666666666666666666666666666666666666667",
      "contrast": "2.3795454458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/PM25/-1",
      "start_pst": "2025-02-23T23:00:00",
      "end_pst": "2025-02-24T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.6208333333333333333333333333333333333333333333333",
      "contrast": "2.3791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/PM25/-1",
      "start_pst": "2025-02-23T23:00:00",
      "end_pst": "2025-02-24T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.7",
      "town": "3.9140911521739130434782608695652173913043478260870",
      "contrast": "8.7859088478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/NO2/-1",
      "start_pst": "2025-02-23T23:00:00",
      "end_pst": "2025-02-24T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.7",
      "town": "3.9043478260869565217391304347826086956521739130435",
      "contrast": "8.7956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/NO2/-1",
      "start_pst": "2025-02-23T23:00:00",
      "end_pst": "2025-02-24T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "16.0010319",
      "contrast": "9.9989681",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/NO2/-1",
      "start_pst": "2025-02-23T23:00:00",
      "end_pst": "2025-02-24T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "16",
      "contrast": "10.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/NO2/-1",
      "start_pst": "2025-02-23T23:00:00",
      "end_pst": "2025-02-24T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.5610305166666666666666666666666666666666666666667",
      "contrast": "2.4389694833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/PM25/+0",
      "start_pst": "2025-02-24T00:00:00",
      "end_pst": "2025-02-25T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.5583333333333333333333333333333333333333333333333",
      "contrast": "2.4416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/PM25/+0",
      "start_pst": "2025-02-24T00:00:00",
      "end_pst": "2025-02-25T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.7",
      "town": "3.8130480652173913043478260869565217391304347826087",
      "contrast": "8.8869519347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/NO2/+0",
      "start_pst": "2025-02-24T00:00:00",
      "end_pst": "2025-02-25T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.7",
      "town": "3.8043478260869565217391304347826086956521739130435",
      "contrast": "8.8956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/NO2/+0",
      "start_pst": "2025-02-24T00:00:00",
      "end_pst": "2025-02-25T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "16.0010319",
      "contrast": "9.9989681",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/NO2/+0",
      "start_pst": "2025-02-24T00:00:00",
      "end_pst": "2025-02-25T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "16",
      "contrast": "10.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/NO2/+0",
      "start_pst": "2025-02-24T00:00:00",
      "end_pst": "2025-02-25T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.463736725",
      "contrast": "2.536263275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/PM25/+1",
      "start_pst": "2025-02-24T01:00:00",
      "end_pst": "2025-02-25T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.4625",
      "contrast": "2.5375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/PM25/+1",
      "start_pst": "2025-02-24T01:00:00",
      "end_pst": "2025-02-25T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.7",
      "town": "3.7481477173913043478260869565217391304347826086957",
      "contrast": "8.9518522826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/NO2/+1",
      "start_pst": "2025-02-24T01:00:00",
      "end_pst": "2025-02-25T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.7",
      "town": "3.7434782608695652173913043478260869565217391304348",
      "contrast": "8.9565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/NO2/+1",
      "start_pst": "2025-02-24T01:00:00",
      "end_pst": "2025-02-25T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "16.0010319",
      "contrast": "9.9989681",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/NO2/+1",
      "start_pst": "2025-02-24T01:00:00",
      "end_pst": "2025-02-25T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "16",
      "contrast": "10.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-24/NO2/+1",
      "start_pst": "2025-02-24T01:00:00",
      "end_pst": "2025-02-25T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.8",
      "town": "0.9538828",
      "contrast": "2.8461172",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/PM25/-1",
      "start_pst": "2025-02-24T23:00:00",
      "end_pst": "2025-02-25T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.8",
      "town": "0.95833333333333333333333333333333333333333333333333",
      "contrast": "2.8416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/PM25/-1",
      "start_pst": "2025-02-24T23:00:00",
      "end_pst": "2025-02-25T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "3.7430207869565217391304347826086956521739130434783",
      "contrast": "7.5569792130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/NO2/-1",
      "start_pst": "2025-02-24T23:00:00",
      "end_pst": "2025-02-25T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "3.7478260869565217391304347826086956521739130434783",
      "contrast": "7.5521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/NO2/-1",
      "start_pst": "2025-02-24T23:00:00",
      "end_pst": "2025-02-25T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "37.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "37.5",
      "town": "9.1830273",
      "contrast": "28.3169727",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/NO2/-1",
      "start_pst": "2025-02-24T23:00:00",
      "end_pst": "2025-02-25T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "37.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "37.5",
      "town": "9.2",
      "contrast": "28.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/NO2/-1",
      "start_pst": "2025-02-24T23:00:00",
      "end_pst": "2025-02-25T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.8",
      "town": "1.0568920916666666666666666666666666666666666666667",
      "contrast": "2.7431079083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/PM25/+0",
      "start_pst": "2025-02-25T00:00:00",
      "end_pst": "2025-02-26T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.8",
      "town": "1.0625",
      "contrast": "2.7375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/PM25/+0",
      "start_pst": "2025-02-25T00:00:00",
      "end_pst": "2025-02-26T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "4.1809360043478260869565217391304347826086956521739",
      "contrast": "7.1190639956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/NO2/+0",
      "start_pst": "2025-02-25T00:00:00",
      "end_pst": "2025-02-26T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "4.1826086956521739130434782608695652173913043478261",
      "contrast": "7.1173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/NO2/+0",
      "start_pst": "2025-02-25T00:00:00",
      "end_pst": "2025-02-26T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "37.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "37.5",
      "town": "10.625103",
      "contrast": "26.874897",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/NO2/+0",
      "start_pst": "2025-02-25T00:00:00",
      "end_pst": "2025-02-26T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "37.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "37.5",
      "town": "10.6",
      "contrast": "26.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/NO2/+0",
      "start_pst": "2025-02-25T00:00:00",
      "end_pst": "2025-02-26T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.8",
      "town": "1.1806258875",
      "contrast": "2.6193741125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/PM25/+1",
      "start_pst": "2025-02-25T01:00:00",
      "end_pst": "2025-02-26T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.8",
      "town": "1.1833333333333333333333333333333333333333333333333",
      "contrast": "2.6166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/PM25/+1",
      "start_pst": "2025-02-25T01:00:00",
      "end_pst": "2025-02-26T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "4.5443641217391304347826086956521739130434782608696",
      "contrast": "6.7556358782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/NO2/+1",
      "start_pst": "2025-02-25T01:00:00",
      "end_pst": "2025-02-26T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "4.5434782608695652173913043478260869565217391304348",
      "contrast": "6.7565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/NO2/+1",
      "start_pst": "2025-02-25T01:00:00",
      "end_pst": "2025-02-26T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "37.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "37.5",
      "town": "10.625103",
      "contrast": "26.874897",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/NO2/+1",
      "start_pst": "2025-02-25T01:00:00",
      "end_pst": "2025-02-26T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "37.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "37.5",
      "town": "10.6",
      "contrast": "26.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-25/NO2/+1",
      "start_pst": "2025-02-25T01:00:00",
      "end_pst": "2025-02-26T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "4.284714325",
      "contrast": "0.215285675",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-26/PM25/-1",
      "start_pst": "2025-02-25T23:00:00",
      "end_pst": "2025-02-26T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "4.275",
      "contrast": "0.225",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-26/PM25/-1",
      "start_pst": "2025-02-25T23:00:00",
      "end_pst": "2025-02-26T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-26/NO2/-1",
      "start_pst": "2025-02-25T23:00:00",
      "end_pst": "2025-02-26T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-26/NO2/-1",
      "start_pst": "2025-02-25T23:00:00",
      "end_pst": "2025-02-26T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-26/NO2/-1",
      "start_pst": "2025-02-25T23:00:00",
      "end_pst": "2025-02-26T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-26/NO2/-1",
      "start_pst": "2025-02-25T23:00:00",
      "end_pst": "2025-02-26T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "4.4188312416666666666666666666666666666666666666667",
      "contrast": "0.0811687583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-26/PM25/+0",
      "start_pst": "2025-02-26T00:00:00",
      "end_pst": "2025-02-27T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "4.4083333333333333333333333333333333333333333333333",
      "contrast": "0.0916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-26/PM25/+0",
      "start_pst": "2025-02-26T00:00:00",
      "end_pst": "2025-02-27T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 12,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-26/NO2/+0",
      "start_pst": "2025-02-26T00:00:00",
      "end_pst": "2025-02-27T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 12,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-26/NO2/+0",
      "start_pst": "2025-02-26T00:00:00",
      "end_pst": "2025-02-27T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 12,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-26/NO2/+0",
      "start_pst": "2025-02-26T00:00:00",
      "end_pst": "2025-02-27T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 12,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-26/NO2/+0",
      "start_pst": "2025-02-26T00:00:00",
      "end_pst": "2025-02-27T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "4.5363979458333333333333333333333333333333333333333",
      "contrast": "-0.0363979458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-26/PM25/+1",
      "start_pst": "2025-02-26T01:00:00",
      "end_pst": "2025-02-27T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "4.525",
      "contrast": "-0.025",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-26/PM25/+1",
      "start_pst": "2025-02-26T01:00:00",
      "end_pst": "2025-02-27T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-26/NO2/+1",
      "start_pst": "2025-02-26T01:00:00",
      "end_pst": "2025-02-27T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-26/NO2/+1",
      "start_pst": "2025-02-26T01:00:00",
      "end_pst": "2025-02-27T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-26/NO2/+1",
      "start_pst": "2025-02-26T01:00:00",
      "end_pst": "2025-02-27T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-26/NO2/+1",
      "start_pst": "2025-02-26T01:00:00",
      "end_pst": "2025-02-27T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "4.3400738458333333333333333333333333333333333333333",
      "contrast": "0.6599261541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-27/PM25/-1",
      "start_pst": "2025-02-26T23:00:00",
      "end_pst": "2025-02-27T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "4.3375",
      "contrast": "0.6625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-27/PM25/-1",
      "start_pst": "2025-02-26T23:00:00",
      "end_pst": "2025-02-27T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-27/NO2/-1",
      "start_pst": "2025-02-26T23:00:00",
      "end_pst": "2025-02-27T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-27/NO2/-1",
      "start_pst": "2025-02-26T23:00:00",
      "end_pst": "2025-02-27T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-27/NO2/-1",
      "start_pst": "2025-02-26T23:00:00",
      "end_pst": "2025-02-27T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-27/NO2/-1",
      "start_pst": "2025-02-26T23:00:00",
      "end_pst": "2025-02-27T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "4.1318205958333333333333333333333333333333333333333",
      "contrast": "0.8681794041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-27/PM25/+0",
      "start_pst": "2025-02-27T00:00:00",
      "end_pst": "2025-02-28T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "4.1291666666666666666666666666666666666666666666667",
      "contrast": "0.8708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-27/PM25/+0",
      "start_pst": "2025-02-27T00:00:00",
      "end_pst": "2025-02-28T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-27/NO2/+0",
      "start_pst": "2025-02-27T00:00:00",
      "end_pst": "2025-02-28T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-27/NO2/+0",
      "start_pst": "2025-02-27T00:00:00",
      "end_pst": "2025-02-28T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-27/NO2/+0",
      "start_pst": "2025-02-27T00:00:00",
      "end_pst": "2025-02-28T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-27/NO2/+0",
      "start_pst": "2025-02-27T00:00:00",
      "end_pst": "2025-02-28T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.9783892208333333333333333333333333333333333333333",
      "contrast": "1.0216107791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-27/PM25/+1",
      "start_pst": "2025-02-27T01:00:00",
      "end_pst": "2025-02-28T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.9791666666666666666666666666666666666666666666667",
      "contrast": "1.0208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-27/PM25/+1",
      "start_pst": "2025-02-27T01:00:00",
      "end_pst": "2025-02-28T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 15,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-27/NO2/+1",
      "start_pst": "2025-02-27T01:00:00",
      "end_pst": "2025-02-28T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 15,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-27/NO2/+1",
      "start_pst": "2025-02-27T01:00:00",
      "end_pst": "2025-02-28T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 15,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-27/NO2/+1",
      "start_pst": "2025-02-27T01:00:00",
      "end_pst": "2025-02-28T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 15,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-02-27/NO2/+1",
      "start_pst": "2025-02-27T01:00:00",
      "end_pst": "2025-02-28T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.0",
      "town": "1.7523251916666666666666666666666666666666666666667",
      "contrast": "1.2476748083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/PM25/-1",
      "start_pst": "2025-02-27T23:00:00",
      "end_pst": "2025-02-28T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.0",
      "town": "1.7625",
      "contrast": "1.2375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/PM25/-1",
      "start_pst": "2025-02-27T23:00:00",
      "end_pst": "2025-02-28T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.3769750565217391304347826086956521739130434782609",
      "contrast": "3.1230249434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/NO2/-1",
      "start_pst": "2025-02-27T23:00:00",
      "end_pst": "2025-02-28T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.3695652173913043478260869565217391304347826086957",
      "contrast": "3.1304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/NO2/-1",
      "start_pst": "2025-02-27T23:00:00",
      "end_pst": "2025-02-28T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.7",
      "town": "9.0740118",
      "contrast": "16.6259882",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/NO2/-1",
      "start_pst": "2025-02-27T23:00:00",
      "end_pst": "2025-02-28T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.7",
      "town": "9.1",
      "contrast": "16.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/NO2/-1",
      "start_pst": "2025-02-27T23:00:00",
      "end_pst": "2025-02-28T23:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.0",
      "town": "1.8610444458333333333333333333333333333333333333333",
      "contrast": "1.1389555541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/PM25/+0",
      "start_pst": "2025-02-28T00:00:00",
      "end_pst": "2025-03-01T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.0",
      "town": "1.8708333333333333333333333333333333333333333333333",
      "contrast": "1.1291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/PM25/+0",
      "start_pst": "2025-02-28T00:00:00",
      "end_pst": "2025-03-01T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.3770645391304347826086956521739130434782608695652",
      "contrast": "3.1229354608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/NO2/+0",
      "start_pst": "2025-02-28T00:00:00",
      "end_pst": "2025-03-01T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.3695652173913043478260869565217391304347826086957",
      "contrast": "3.1304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/NO2/+0",
      "start_pst": "2025-02-28T00:00:00",
      "end_pst": "2025-03-01T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.7",
      "town": "9.0740118",
      "contrast": "16.6259882",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/NO2/+0",
      "start_pst": "2025-02-28T00:00:00",
      "end_pst": "2025-03-01T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.7",
      "town": "9.1",
      "contrast": "16.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/NO2/+0",
      "start_pst": "2025-02-28T00:00:00",
      "end_pst": "2025-03-01T00:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.0",
      "town": "1.8040894458333333333333333333333333333333333333333",
      "contrast": "1.1959105541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/PM25/+1",
      "start_pst": "2025-02-28T01:00:00",
      "end_pst": "2025-03-01T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.0",
      "town": "1.8125",
      "contrast": "1.1875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/PM25/+1",
      "start_pst": "2025-02-28T01:00:00",
      "end_pst": "2025-03-01T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-02-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.3656350173913043478260869565217391304347826086957",
      "contrast": "3.1343649826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/NO2/+1",
      "start_pst": "2025-02-28T01:00:00",
      "end_pst": "2025-03-01T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.3565217391304347826086956521739130434782608695652",
      "contrast": "3.1434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/NO2/+1",
      "start_pst": "2025-02-28T01:00:00",
      "end_pst": "2025-03-01T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-02-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.7",
      "town": "9.0740118",
      "contrast": "16.6259882",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/NO2/+1",
      "start_pst": "2025-02-28T01:00:00",
      "end_pst": "2025-03-01T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-02-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.7",
      "town": "9.1",
      "contrast": "16.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-02-28/NO2/+1",
      "start_pst": "2025-02-28T01:00:00",
      "end_pst": "2025-03-01T01:00:00",
      "onsite_source": {
        "month": "2025-02",
        "date_printed": "2/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/04/WLNG-AQMS-Monthly-Report-2025-02-February-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-02.pdf",
        "source_pdf_sha256": "287aad2e7307e10edac94472a7c899b6a8e339b5f31acb2699b3e78b7c10cac2",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-02/table-b1-air-native.csv",
        "source_csv_sha256": "aee4b91a6855114cfa30ddffe27c5ae146462a2368d2ecdbec7c5c423fe65d9b",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "3.0801037916666666666666666666666666666666666666667",
      "contrast": "1.5198962083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/PM25/-1",
      "start_pst": "2025-02-28T23:00:00",
      "end_pst": "2025-03-01T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "3.075",
      "contrast": "1.525",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/PM25/-1",
      "start_pst": "2025-02-28T23:00:00",
      "end_pst": "2025-03-01T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "5.4194842956521739130434782608695652173913043478261",
      "contrast": "2.3805157043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/NO2/-1",
      "start_pst": "2025-02-28T23:00:00",
      "end_pst": "2025-03-01T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "5.4130434782608695652173913043478260869565217391304",
      "contrast": "2.3869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/NO2/-1",
      "start_pst": "2025-02-28T23:00:00",
      "end_pst": "2025-03-01T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.5",
      "town": "19.0756721",
      "contrast": "2.4243279",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/NO2/-1",
      "start_pst": "2025-02-28T23:00:00",
      "end_pst": "2025-03-01T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.5",
      "town": "19.1",
      "contrast": "2.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/NO2/-1",
      "start_pst": "2025-02-28T23:00:00",
      "end_pst": "2025-03-01T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "3.246496875",
      "contrast": "1.353503125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/PM25/+0",
      "start_pst": "2025-03-01T00:00:00",
      "end_pst": "2025-03-02T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "3.2416666666666666666666666666666666666666666666667",
      "contrast": "1.3583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/PM25/+0",
      "start_pst": "2025-03-01T00:00:00",
      "end_pst": "2025-03-02T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "5.5842368608695652173913043478260869565217391304348",
      "contrast": "2.2157631391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/NO2/+0",
      "start_pst": "2025-03-01T00:00:00",
      "end_pst": "2025-03-02T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "5.5782608695652173913043478260869565217391304347826",
      "contrast": "2.2217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/NO2/+0",
      "start_pst": "2025-03-01T00:00:00",
      "end_pst": "2025-03-02T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.5",
      "town": "19.0756721",
      "contrast": "2.4243279",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/NO2/+0",
      "start_pst": "2025-03-01T00:00:00",
      "end_pst": "2025-03-02T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.5",
      "town": "19.1",
      "contrast": "2.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/NO2/+0",
      "start_pst": "2025-03-01T00:00:00",
      "end_pst": "2025-03-02T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "3.5678402583333333333333333333333333333333333333333",
      "contrast": "1.0321597416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/PM25/+1",
      "start_pst": "2025-03-01T01:00:00",
      "end_pst": "2025-03-02T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "3.5625",
      "contrast": "1.0375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/PM25/+1",
      "start_pst": "2025-03-01T01:00:00",
      "end_pst": "2025-03-02T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "5.7484586",
      "contrast": "2.0515414",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/NO2/+1",
      "start_pst": "2025-03-01T01:00:00",
      "end_pst": "2025-03-02T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "5.7434782608695652173913043478260869565217391304348",
      "contrast": "2.0565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/NO2/+1",
      "start_pst": "2025-03-01T01:00:00",
      "end_pst": "2025-03-02T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.5",
      "town": "19.0756721",
      "contrast": "2.4243279",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/NO2/+1",
      "start_pst": "2025-03-01T01:00:00",
      "end_pst": "2025-03-02T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.5",
      "town": "19.1",
      "contrast": "2.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-01/NO2/+1",
      "start_pst": "2025-03-01T01:00:00",
      "end_pst": "2025-03-02T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "6.1980147291666666666666666666666666666666666666667",
      "contrast": "0.4019852708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/PM25/-1",
      "start_pst": "2025-03-01T23:00:00",
      "end_pst": "2025-03-02T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "6.2083333333333333333333333333333333333333333333333",
      "contrast": "0.3916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/PM25/-1",
      "start_pst": "2025-03-01T23:00:00",
      "end_pst": "2025-03-02T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "5.0717935304347826086956521739130434782608695652174",
      "contrast": "-0.5717935304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/NO2/-1",
      "start_pst": "2025-03-01T23:00:00",
      "end_pst": "2025-03-02T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "5.0695652173913043478260869565217391304347826086957",
      "contrast": "-0.5695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/NO2/-1",
      "start_pst": "2025-03-01T23:00:00",
      "end_pst": "2025-03-02T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "11.8995447",
      "contrast": "2.7004553",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/NO2/-1",
      "start_pst": "2025-03-01T23:00:00",
      "end_pst": "2025-03-02T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "11.9",
      "contrast": "2.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/NO2/-1",
      "start_pst": "2025-03-01T23:00:00",
      "end_pst": "2025-03-02T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "6.2894179333333333333333333333333333333333333333333",
      "contrast": "0.3105820666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/PM25/+0",
      "start_pst": "2025-03-02T00:00:00",
      "end_pst": "2025-03-03T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "6.3",
      "contrast": "0.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/PM25/+0",
      "start_pst": "2025-03-02T00:00:00",
      "end_pst": "2025-03-03T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "5.1716960956521739130434782608695652173913043478261",
      "contrast": "-0.6716960956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/NO2/+0",
      "start_pst": "2025-03-02T00:00:00",
      "end_pst": "2025-03-03T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "5.1695652173913043478260869565217391304347826086957",
      "contrast": "-0.6695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/NO2/+0",
      "start_pst": "2025-03-02T00:00:00",
      "end_pst": "2025-03-03T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "11.8995447",
      "contrast": "2.7004553",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/NO2/+0",
      "start_pst": "2025-03-02T00:00:00",
      "end_pst": "2025-03-03T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "11.9",
      "contrast": "2.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/NO2/+0",
      "start_pst": "2025-03-02T00:00:00",
      "end_pst": "2025-03-03T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "6.2595156333333333333333333333333333333333333333333",
      "contrast": "0.3404843666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/PM25/+1",
      "start_pst": "2025-03-02T01:00:00",
      "end_pst": "2025-03-03T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "6.2708333333333333333333333333333333333333333333333",
      "contrast": "0.3291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/PM25/+1",
      "start_pst": "2025-03-02T01:00:00",
      "end_pst": "2025-03-03T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "5.2381120043478260869565217391304347826086956521739",
      "contrast": "-0.7381120043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/NO2/+1",
      "start_pst": "2025-03-02T01:00:00",
      "end_pst": "2025-03-03T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "5.2347826086956521739130434782608695652173913043478",
      "contrast": "-0.7347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/NO2/+1",
      "start_pst": "2025-03-02T01:00:00",
      "end_pst": "2025-03-03T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "11.8995447",
      "contrast": "2.7004553",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/NO2/+1",
      "start_pst": "2025-03-02T01:00:00",
      "end_pst": "2025-03-03T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "11.9",
      "contrast": "2.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-02/NO2/+1",
      "start_pst": "2025-03-02T01:00:00",
      "end_pst": "2025-03-03T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "5.5055186833333333333333333333333333333333333333333",
      "contrast": "1.7944813166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/PM25/-1",
      "start_pst": "2025-03-02T23:00:00",
      "end_pst": "2025-03-03T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "5.4958333333333333333333333333333333333333333333333",
      "contrast": "1.8041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/PM25/-1",
      "start_pst": "2025-03-02T23:00:00",
      "end_pst": "2025-03-03T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "6.6130063521739130434782608695652173913043478260870",
      "contrast": "0.8869936478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/NO2/-1",
      "start_pst": "2025-03-02T23:00:00",
      "end_pst": "2025-03-03T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "6.6217391304347826086956521739130434782608695652174",
      "contrast": "0.8782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/NO2/-1",
      "start_pst": "2025-03-02T23:00:00",
      "end_pst": "2025-03-03T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.6",
      "town": "14.1799622",
      "contrast": "7.4200378",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/NO2/-1",
      "start_pst": "2025-03-02T23:00:00",
      "end_pst": "2025-03-03T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.6",
      "town": "14.2",
      "contrast": "7.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/NO2/-1",
      "start_pst": "2025-03-02T23:00:00",
      "end_pst": "2025-03-03T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "5.2584949833333333333333333333333333333333333333333",
      "contrast": "2.0415050166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/PM25/+0",
      "start_pst": "2025-03-03T00:00:00",
      "end_pst": "2025-03-04T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "5.25",
      "contrast": "2.05",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/PM25/+0",
      "start_pst": "2025-03-03T00:00:00",
      "end_pst": "2025-03-04T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "6.5923396521739130434782608695652173913043478260870",
      "contrast": "0.9076603478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/NO2/+0",
      "start_pst": "2025-03-03T00:00:00",
      "end_pst": "2025-03-04T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "6.6",
      "contrast": "0.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/NO2/+0",
      "start_pst": "2025-03-03T00:00:00",
      "end_pst": "2025-03-04T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.6",
      "town": "14.1799622",
      "contrast": "7.4200378",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/NO2/+0",
      "start_pst": "2025-03-03T00:00:00",
      "end_pst": "2025-03-04T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.6",
      "town": "14.2",
      "contrast": "7.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/NO2/+0",
      "start_pst": "2025-03-03T00:00:00",
      "end_pst": "2025-03-04T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "5.110077075",
      "contrast": "2.189922925",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/PM25/+1",
      "start_pst": "2025-03-03T01:00:00",
      "end_pst": "2025-03-04T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "5.1",
      "contrast": "2.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/PM25/+1",
      "start_pst": "2025-03-03T01:00:00",
      "end_pst": "2025-03-04T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "6.6062380043478260869565217391304347826086956521739",
      "contrast": "0.8937619956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/NO2/+1",
      "start_pst": "2025-03-03T01:00:00",
      "end_pst": "2025-03-04T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "6.6173913043478260869565217391304347826086956521739",
      "contrast": "0.8826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/NO2/+1",
      "start_pst": "2025-03-03T01:00:00",
      "end_pst": "2025-03-04T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.6",
      "town": "14.1799622",
      "contrast": "7.4200378",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/NO2/+1",
      "start_pst": "2025-03-03T01:00:00",
      "end_pst": "2025-03-04T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.6",
      "town": "14.2",
      "contrast": "7.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-03/NO2/+1",
      "start_pst": "2025-03-03T01:00:00",
      "end_pst": "2025-03-04T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "3.3782669416666666666666666666666666666666666666667",
      "contrast": "0.5217330583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/PM25/-1",
      "start_pst": "2025-03-03T23:00:00",
      "end_pst": "2025-03-04T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "3.3833333333333333333333333333333333333333333333333",
      "contrast": "0.5166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/PM25/-1",
      "start_pst": "2025-03-03T23:00:00",
      "end_pst": "2025-03-04T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "6.4864025391304347826086956521739130434782608695652",
      "contrast": "-1.1864025391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/NO2/-1",
      "start_pst": "2025-03-03T23:00:00",
      "end_pst": "2025-03-04T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "6.4869565217391304347826086956521739130434782608696",
      "contrast": "-1.1869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/NO2/-1",
      "start_pst": "2025-03-03T23:00:00",
      "end_pst": "2025-03-04T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.3",
      "town": "9.8331823",
      "contrast": "6.4668177",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/NO2/-1",
      "start_pst": "2025-03-03T23:00:00",
      "end_pst": "2025-03-04T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.3",
      "town": "9.8",
      "contrast": "6.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/NO2/-1",
      "start_pst": "2025-03-03T23:00:00",
      "end_pst": "2025-03-04T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "3.3103053958333333333333333333333333333333333333333",
      "contrast": "0.5896946041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/PM25/+0",
      "start_pst": "2025-03-04T00:00:00",
      "end_pst": "2025-03-05T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "3.3166666666666666666666666666666666666666666666667",
      "contrast": "0.5833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/PM25/+0",
      "start_pst": "2025-03-04T00:00:00",
      "end_pst": "2025-03-05T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "6.3642101565217391304347826086956521739130434782609",
      "contrast": "-1.0642101565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/NO2/+0",
      "start_pst": "2025-03-04T00:00:00",
      "end_pst": "2025-03-05T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "6.3652173913043478260869565217391304347826086956522",
      "contrast": "-1.0652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/NO2/+0",
      "start_pst": "2025-03-04T00:00:00",
      "end_pst": "2025-03-05T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.3",
      "town": "9.8331823",
      "contrast": "6.4668177",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/NO2/+0",
      "start_pst": "2025-03-04T00:00:00",
      "end_pst": "2025-03-05T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.3",
      "town": "9.8",
      "contrast": "6.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/NO2/+0",
      "start_pst": "2025-03-04T00:00:00",
      "end_pst": "2025-03-05T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "3.3625749708333333333333333333333333333333333333333",
      "contrast": "0.5374250291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/PM25/+1",
      "start_pst": "2025-03-04T01:00:00",
      "end_pst": "2025-03-05T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "3.3708333333333333333333333333333333333333333333333",
      "contrast": "0.5291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/PM25/+1",
      "start_pst": "2025-03-04T01:00:00",
      "end_pst": "2025-03-05T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "6.2898448521739130434782608695652173913043478260870",
      "contrast": "-0.9898448521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/NO2/+1",
      "start_pst": "2025-03-04T01:00:00",
      "end_pst": "2025-03-05T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "6.2869565217391304347826086956521739130434782608696",
      "contrast": "-0.9869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/NO2/+1",
      "start_pst": "2025-03-04T01:00:00",
      "end_pst": "2025-03-05T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.3",
      "town": "9.8331823",
      "contrast": "6.4668177",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/NO2/+1",
      "start_pst": "2025-03-04T01:00:00",
      "end_pst": "2025-03-05T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.3",
      "town": "9.8",
      "contrast": "6.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-04/NO2/+1",
      "start_pst": "2025-03-04T01:00:00",
      "end_pst": "2025-03-05T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "2.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 9,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/PM25/-1",
      "start_pst": "2025-03-04T23:00:00",
      "end_pst": "2025-03-05T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "2.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 9,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/PM25/-1",
      "start_pst": "2025-03-04T23:00:00",
      "end_pst": "2025-03-05T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 7,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/NO2/-1",
      "start_pst": "2025-03-04T23:00:00",
      "end_pst": "2025-03-05T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 7,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/NO2/-1",
      "start_pst": "2025-03-04T23:00:00",
      "end_pst": "2025-03-05T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 7,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/NO2/-1",
      "start_pst": "2025-03-04T23:00:00",
      "end_pst": "2025-03-05T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 7,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/NO2/-1",
      "start_pst": "2025-03-04T23:00:00",
      "end_pst": "2025-03-05T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "2.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 8,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/PM25/+0",
      "start_pst": "2025-03-05T00:00:00",
      "end_pst": "2025-03-06T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "2.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 8,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/PM25/+0",
      "start_pst": "2025-03-05T00:00:00",
      "end_pst": "2025-03-06T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 6,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/NO2/+0",
      "start_pst": "2025-03-05T00:00:00",
      "end_pst": "2025-03-06T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 6,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/NO2/+0",
      "start_pst": "2025-03-05T00:00:00",
      "end_pst": "2025-03-06T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 6,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/NO2/+0",
      "start_pst": "2025-03-05T00:00:00",
      "end_pst": "2025-03-06T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 6,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/NO2/+0",
      "start_pst": "2025-03-05T00:00:00",
      "end_pst": "2025-03-06T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "2.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 7,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/PM25/+1",
      "start_pst": "2025-03-05T01:00:00",
      "end_pst": "2025-03-06T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "2.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 7,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/PM25/+1",
      "start_pst": "2025-03-05T01:00:00",
      "end_pst": "2025-03-06T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 5,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/NO2/+1",
      "start_pst": "2025-03-05T01:00:00",
      "end_pst": "2025-03-06T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 5,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/NO2/+1",
      "start_pst": "2025-03-05T01:00:00",
      "end_pst": "2025-03-06T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 5,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/NO2/+1",
      "start_pst": "2025-03-05T01:00:00",
      "end_pst": "2025-03-06T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 5,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-05/NO2/+1",
      "start_pst": "2025-03-05T01:00:00",
      "end_pst": "2025-03-06T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 15,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/PM25/-1",
      "start_pst": "2025-03-05T23:00:00",
      "end_pst": "2025-03-06T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 15,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/PM25/-1",
      "start_pst": "2025-03-05T23:00:00",
      "end_pst": "2025-03-06T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/NO2/-1",
      "start_pst": "2025-03-05T23:00:00",
      "end_pst": "2025-03-06T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/NO2/-1",
      "start_pst": "2025-03-05T23:00:00",
      "end_pst": "2025-03-06T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/NO2/-1",
      "start_pst": "2025-03-05T23:00:00",
      "end_pst": "2025-03-06T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/NO2/-1",
      "start_pst": "2025-03-05T23:00:00",
      "end_pst": "2025-03-06T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/PM25/+0",
      "start_pst": "2025-03-06T00:00:00",
      "end_pst": "2025-03-07T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/PM25/+0",
      "start_pst": "2025-03-06T00:00:00",
      "end_pst": "2025-03-07T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/NO2/+0",
      "start_pst": "2025-03-06T00:00:00",
      "end_pst": "2025-03-07T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/NO2/+0",
      "start_pst": "2025-03-06T00:00:00",
      "end_pst": "2025-03-07T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/NO2/+0",
      "start_pst": "2025-03-06T00:00:00",
      "end_pst": "2025-03-07T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/NO2/+0",
      "start_pst": "2025-03-06T00:00:00",
      "end_pst": "2025-03-07T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 17,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/PM25/+1",
      "start_pst": "2025-03-06T01:00:00",
      "end_pst": "2025-03-07T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 17,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/PM25/+1",
      "start_pst": "2025-03-06T01:00:00",
      "end_pst": "2025-03-07T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/NO2/+1",
      "start_pst": "2025-03-06T01:00:00",
      "end_pst": "2025-03-07T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/NO2/+1",
      "start_pst": "2025-03-06T01:00:00",
      "end_pst": "2025-03-07T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/NO2/+1",
      "start_pst": "2025-03-06T01:00:00",
      "end_pst": "2025-03-07T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-06/NO2/+1",
      "start_pst": "2025-03-06T01:00:00",
      "end_pst": "2025-03-07T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.996160625",
      "contrast": "2.803839375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/PM25/-1",
      "start_pst": "2025-03-06T23:00:00",
      "end_pst": "2025-03-07T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.9958333333333333333333333333333333333333333333333",
      "contrast": "2.8041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/PM25/-1",
      "start_pst": "2025-03-06T23:00:00",
      "end_pst": "2025-03-07T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.6726127782608695652173913043478260869565217391304",
      "contrast": "1.2273872217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/NO2/-1",
      "start_pst": "2025-03-06T23:00:00",
      "end_pst": "2025-03-07T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.6782608695652173913043478260869565217391304347826",
      "contrast": "1.2217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/NO2/-1",
      "start_pst": "2025-03-06T23:00:00",
      "end_pst": "2025-03-07T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.1",
      "town": "17.2253952",
      "contrast": "7.8746048",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/NO2/-1",
      "start_pst": "2025-03-06T23:00:00",
      "end_pst": "2025-03-07T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.1",
      "town": "17.2",
      "contrast": "7.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/NO2/-1",
      "start_pst": "2025-03-06T23:00:00",
      "end_pst": "2025-03-07T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.8761826541666666666666666666666666666666666666667",
      "contrast": "2.9238173458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/PM25/+0",
      "start_pst": "2025-03-07T00:00:00",
      "end_pst": "2025-03-08T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.875",
      "contrast": "2.925",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/PM25/+0",
      "start_pst": "2025-03-07T00:00:00",
      "end_pst": "2025-03-08T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.6456371318181818181818181818181818181818181818182",
      "contrast": "1.2543628681818181818181818181818181818181818181818",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/NO2/+0",
      "start_pst": "2025-03-07T00:00:00",
      "end_pst": "2025-03-08T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.65",
      "contrast": "1.25",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/NO2/+0",
      "start_pst": "2025-03-07T00:00:00",
      "end_pst": "2025-03-08T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.1",
      "town": "17.2253952",
      "contrast": "7.8746048",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/NO2/+0",
      "start_pst": "2025-03-07T00:00:00",
      "end_pst": "2025-03-08T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.1",
      "town": "17.2",
      "contrast": "7.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/NO2/+0",
      "start_pst": "2025-03-07T00:00:00",
      "end_pst": "2025-03-08T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.9304239416666666666666666666666666666666666666667",
      "contrast": "2.8695760583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/PM25/+1",
      "start_pst": "2025-03-07T01:00:00",
      "end_pst": "2025-03-08T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.9291666666666666666666666666666666666666666666667",
      "contrast": "2.8708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/PM25/+1",
      "start_pst": "2025-03-07T01:00:00",
      "end_pst": "2025-03-08T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.3633880391304347826086956521739130434782608695652",
      "contrast": "1.5366119608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/NO2/+1",
      "start_pst": "2025-03-07T01:00:00",
      "end_pst": "2025-03-08T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.3695652173913043478260869565217391304347826086957",
      "contrast": "1.5304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/NO2/+1",
      "start_pst": "2025-03-07T01:00:00",
      "end_pst": "2025-03-08T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.1",
      "town": "17.2253952",
      "contrast": "7.8746048",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/NO2/+1",
      "start_pst": "2025-03-07T01:00:00",
      "end_pst": "2025-03-08T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.1",
      "town": "17.2",
      "contrast": "7.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-07/NO2/+1",
      "start_pst": "2025-03-07T01:00:00",
      "end_pst": "2025-03-08T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "2.63356585",
      "contrast": "1.36643415",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/PM25/-1",
      "start_pst": "2025-03-07T23:00:00",
      "end_pst": "2025-03-08T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "2.625",
      "contrast": "1.375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/PM25/-1",
      "start_pst": "2025-03-07T23:00:00",
      "end_pst": "2025-03-08T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.6803429772727272727272727272727272727272727272727",
      "contrast": "5.8196570227272727272727272727272727272727272727273",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/NO2/-1",
      "start_pst": "2025-03-07T23:00:00",
      "end_pst": "2025-03-08T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.6772727272727272727272727272727272727272727272727",
      "contrast": "5.8227272727272727272727272727272727272727272727273",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/NO2/-1",
      "start_pst": "2025-03-07T23:00:00",
      "end_pst": "2025-03-08T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.1",
      "town": "9.4184914",
      "contrast": "16.6815086",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/NO2/-1",
      "start_pst": "2025-03-07T23:00:00",
      "end_pst": "2025-03-08T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.1",
      "town": "9.4",
      "contrast": "16.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/NO2/-1",
      "start_pst": "2025-03-07T23:00:00",
      "end_pst": "2025-03-08T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "2.4834027666666666666666666666666666666666666666667",
      "contrast": "1.5165972333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/PM25/+0",
      "start_pst": "2025-03-08T00:00:00",
      "end_pst": "2025-03-09T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "2.475",
      "contrast": "1.525",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/PM25/+0",
      "start_pst": "2025-03-08T00:00:00",
      "end_pst": "2025-03-09T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.6489448956521739130434782608695652173913043478261",
      "contrast": "5.8510551043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/NO2/+0",
      "start_pst": "2025-03-08T00:00:00",
      "end_pst": "2025-03-09T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.6478260869565217391304347826086956521739130434783",
      "contrast": "5.8521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/NO2/+0",
      "start_pst": "2025-03-08T00:00:00",
      "end_pst": "2025-03-09T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.1",
      "town": "9.4184914",
      "contrast": "16.6815086",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/NO2/+0",
      "start_pst": "2025-03-08T00:00:00",
      "end_pst": "2025-03-09T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.1",
      "town": "9.4",
      "contrast": "16.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/NO2/+0",
      "start_pst": "2025-03-08T00:00:00",
      "end_pst": "2025-03-09T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "2.4374472291666666666666666666666666666666666666667",
      "contrast": "1.5625527708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/PM25/+1",
      "start_pst": "2025-03-08T01:00:00",
      "end_pst": "2025-03-09T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "2.4291666666666666666666666666666666666666666666667",
      "contrast": "1.5708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/PM25/+1",
      "start_pst": "2025-03-08T01:00:00",
      "end_pst": "2025-03-09T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.7641266",
      "contrast": "5.7358734",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/NO2/+1",
      "start_pst": "2025-03-08T01:00:00",
      "end_pst": "2025-03-09T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.7608695652173913043478260869565217391304347826087",
      "contrast": "5.7391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/NO2/+1",
      "start_pst": "2025-03-08T01:00:00",
      "end_pst": "2025-03-09T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.1",
      "town": "9.4184914",
      "contrast": "16.6815086",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/NO2/+1",
      "start_pst": "2025-03-08T01:00:00",
      "end_pst": "2025-03-09T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.1",
      "town": "9.4",
      "contrast": "16.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-08/NO2/+1",
      "start_pst": "2025-03-08T01:00:00",
      "end_pst": "2025-03-09T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "1.9792558791666666666666666666666666666666666666667",
      "contrast": "1.9207441208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/PM25/-1",
      "start_pst": "2025-03-08T23:00:00",
      "end_pst": "2025-03-09T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "1.9833333333333333333333333333333333333333333333333",
      "contrast": "1.9166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/PM25/-1",
      "start_pst": "2025-03-08T23:00:00",
      "end_pst": "2025-03-09T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.9136266739130434782608695652173913043478260869565",
      "contrast": "6.8863733260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/NO2/-1",
      "start_pst": "2025-03-08T23:00:00",
      "end_pst": "2025-03-09T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.9086956521739130434782608695652173913043478260870",
      "contrast": "6.8913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/NO2/-1",
      "start_pst": "2025-03-08T23:00:00",
      "end_pst": "2025-03-09T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "8.9418459",
      "contrast": "14.8581541",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/NO2/-1",
      "start_pst": "2025-03-08T23:00:00",
      "end_pst": "2025-03-09T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "8.9",
      "contrast": "14.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/NO2/-1",
      "start_pst": "2025-03-08T23:00:00",
      "end_pst": "2025-03-09T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "2.0259004166666666666666666666666666666666666666667",
      "contrast": "1.8740995833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/PM25/+0",
      "start_pst": "2025-03-09T00:00:00",
      "end_pst": "2025-03-10T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "2.0291666666666666666666666666666666666666666666667",
      "contrast": "1.8708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/PM25/+0",
      "start_pst": "2025-03-09T00:00:00",
      "end_pst": "2025-03-10T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.8545064956521739130434782608695652173913043478261",
      "contrast": "6.9454935043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/NO2/+0",
      "start_pst": "2025-03-09T00:00:00",
      "end_pst": "2025-03-10T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.8478260869565217391304347826086956521739130434783",
      "contrast": "6.9521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/NO2/+0",
      "start_pst": "2025-03-09T00:00:00",
      "end_pst": "2025-03-10T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "8.9418459",
      "contrast": "14.8581541",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/NO2/+0",
      "start_pst": "2025-03-09T00:00:00",
      "end_pst": "2025-03-10T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "8.9",
      "contrast": "14.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/NO2/+0",
      "start_pst": "2025-03-09T00:00:00",
      "end_pst": "2025-03-10T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "1.9947234166666666666666666666666666666666666666667",
      "contrast": "1.9052765833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/PM25/+1",
      "start_pst": "2025-03-09T01:00:00",
      "end_pst": "2025-03-10T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "1.9958333333333333333333333333333333333333333333333",
      "contrast": "1.9041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/PM25/+1",
      "start_pst": "2025-03-09T01:00:00",
      "end_pst": "2025-03-10T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.7740375304347826086956521739130434782608695652174",
      "contrast": "7.0259624695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/NO2/+1",
      "start_pst": "2025-03-09T01:00:00",
      "end_pst": "2025-03-10T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.7695652173913043478260869565217391304347826086957",
      "contrast": "7.0304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/NO2/+1",
      "start_pst": "2025-03-09T01:00:00",
      "end_pst": "2025-03-10T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "8.9418459",
      "contrast": "14.8581541",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/NO2/+1",
      "start_pst": "2025-03-09T01:00:00",
      "end_pst": "2025-03-10T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "8.9",
      "contrast": "14.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-09/NO2/+1",
      "start_pst": "2025-03-09T01:00:00",
      "end_pst": "2025-03-10T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.9023966833333333333333333333333333333333333333333",
      "contrast": "1.2976033166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/PM25/-1",
      "start_pst": "2025-03-09T23:00:00",
      "end_pst": "2025-03-10T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.9083333333333333333333333333333333333333333333333",
      "contrast": "1.2916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/PM25/-1",
      "start_pst": "2025-03-09T23:00:00",
      "end_pst": "2025-03-10T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.6715712",
      "contrast": "4.6284288",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/NO2/-1",
      "start_pst": "2025-03-09T23:00:00",
      "end_pst": "2025-03-10T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.6652173913043478260869565217391304347826086956522",
      "contrast": "4.6347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/NO2/-1",
      "start_pst": "2025-03-09T23:00:00",
      "end_pst": "2025-03-10T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.4",
      "town": "13.3012848",
      "contrast": "8.0987152",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/NO2/-1",
      "start_pst": "2025-03-09T23:00:00",
      "end_pst": "2025-03-10T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.4",
      "town": "13.3",
      "contrast": "8.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/NO2/-1",
      "start_pst": "2025-03-09T23:00:00",
      "end_pst": "2025-03-10T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.8924776083333333333333333333333333333333333333333",
      "contrast": "1.3075223916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/PM25/+0",
      "start_pst": "2025-03-10T00:00:00",
      "end_pst": "2025-03-11T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.9",
      "contrast": "1.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/PM25/+0",
      "start_pst": "2025-03-10T00:00:00",
      "end_pst": "2025-03-11T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.6877082",
      "contrast": "4.6122918",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/NO2/+0",
      "start_pst": "2025-03-10T00:00:00",
      "end_pst": "2025-03-11T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.6826086956521739130434782608695652173913043478261",
      "contrast": "4.6173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/NO2/+0",
      "start_pst": "2025-03-10T00:00:00",
      "end_pst": "2025-03-11T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.4",
      "town": "13.3012848",
      "contrast": "8.0987152",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/NO2/+0",
      "start_pst": "2025-03-10T00:00:00",
      "end_pst": "2025-03-11T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.4",
      "town": "13.3",
      "contrast": "8.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/NO2/+0",
      "start_pst": "2025-03-10T00:00:00",
      "end_pst": "2025-03-11T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.8948409416666666666666666666666666666666666666667",
      "contrast": "1.3051590583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/PM25/+1",
      "start_pst": "2025-03-10T01:00:00",
      "end_pst": "2025-03-11T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.9041666666666666666666666666666666666666666666667",
      "contrast": "1.2958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/PM25/+1",
      "start_pst": "2025-03-10T01:00:00",
      "end_pst": "2025-03-11T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.6473542913043478260869565217391304347826086956522",
      "contrast": "4.6526457086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/NO2/+1",
      "start_pst": "2025-03-10T01:00:00",
      "end_pst": "2025-03-11T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.6391304347826086956521739130434782608695652173913",
      "contrast": "4.6608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/NO2/+1",
      "start_pst": "2025-03-10T01:00:00",
      "end_pst": "2025-03-11T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.4",
      "town": "13.3012848",
      "contrast": "8.0987152",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/NO2/+1",
      "start_pst": "2025-03-10T01:00:00",
      "end_pst": "2025-03-11T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.4",
      "town": "13.3",
      "contrast": "8.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-10/NO2/+1",
      "start_pst": "2025-03-10T01:00:00",
      "end_pst": "2025-03-11T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "2.7144815625",
      "contrast": "1.1855184375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/PM25/-1",
      "start_pst": "2025-03-10T23:00:00",
      "end_pst": "2025-03-11T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "2.725",
      "contrast": "1.175",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/PM25/-1",
      "start_pst": "2025-03-10T23:00:00",
      "end_pst": "2025-03-11T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.1989688608695652173913043478260869565217391304348",
      "contrast": "3.4010311391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/NO2/-1",
      "start_pst": "2025-03-10T23:00:00",
      "end_pst": "2025-03-11T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.2",
      "contrast": "3.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/NO2/-1",
      "start_pst": "2025-03-10T23:00:00",
      "end_pst": "2025-03-11T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "9.001173",
      "contrast": "6.698827",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/NO2/-1",
      "start_pst": "2025-03-10T23:00:00",
      "end_pst": "2025-03-11T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "9",
      "contrast": "6.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/NO2/-1",
      "start_pst": "2025-03-10T23:00:00",
      "end_pst": "2025-03-11T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "2.7037239375",
      "contrast": "1.1962760625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/PM25/+0",
      "start_pst": "2025-03-11T00:00:00",
      "end_pst": "2025-03-12T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "2.7125",
      "contrast": "1.1875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/PM25/+0",
      "start_pst": "2025-03-11T00:00:00",
      "end_pst": "2025-03-12T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.1804658173913043478260869565217391304347826086957",
      "contrast": "3.4195341826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/NO2/+0",
      "start_pst": "2025-03-11T00:00:00",
      "end_pst": "2025-03-12T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.1782608695652173913043478260869565217391304347826",
      "contrast": "3.4217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/NO2/+0",
      "start_pst": "2025-03-11T00:00:00",
      "end_pst": "2025-03-12T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "9.001173",
      "contrast": "6.698827",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/NO2/+0",
      "start_pst": "2025-03-11T00:00:00",
      "end_pst": "2025-03-12T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "9",
      "contrast": "6.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/NO2/+0",
      "start_pst": "2025-03-11T00:00:00",
      "end_pst": "2025-03-12T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "2.765889025",
      "contrast": "1.134110975",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/PM25/+1",
      "start_pst": "2025-03-11T01:00:00",
      "end_pst": "2025-03-12T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "2.775",
      "contrast": "1.125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/PM25/+1",
      "start_pst": "2025-03-11T01:00:00",
      "end_pst": "2025-03-12T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.1929629434782608695652173913043478260869565217391",
      "contrast": "3.4070370565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/NO2/+1",
      "start_pst": "2025-03-11T01:00:00",
      "end_pst": "2025-03-12T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.1913043478260869565217391304347826086956521739130",
      "contrast": "3.4086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/NO2/+1",
      "start_pst": "2025-03-11T01:00:00",
      "end_pst": "2025-03-12T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "9.001173",
      "contrast": "6.698827",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/NO2/+1",
      "start_pst": "2025-03-11T01:00:00",
      "end_pst": "2025-03-12T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "9",
      "contrast": "6.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-11/NO2/+1",
      "start_pst": "2025-03-11T01:00:00",
      "end_pst": "2025-03-12T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.1",
      "town": "1.9788524291666666666666666666666666666666666666667",
      "contrast": "2.1211475708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/PM25/-1",
      "start_pst": "2025-03-11T23:00:00",
      "end_pst": "2025-03-12T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.1",
      "town": "1.9791666666666666666666666666666666666666666666667",
      "contrast": "2.1208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/PM25/-1",
      "start_pst": "2025-03-11T23:00:00",
      "end_pst": "2025-03-12T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "5.0976648521739130434782608695652173913043478260870",
      "contrast": "7.0023351478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/NO2/-1",
      "start_pst": "2025-03-11T23:00:00",
      "end_pst": "2025-03-12T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "5.0956521739130434782608695652173913043478260869565",
      "contrast": "7.0043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/NO2/-1",
      "start_pst": "2025-03-11T23:00:00",
      "end_pst": "2025-03-12T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "12.058732",
      "contrast": "13.941268",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/NO2/-1",
      "start_pst": "2025-03-11T23:00:00",
      "end_pst": "2025-03-12T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "12.1",
      "contrast": "13.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/NO2/-1",
      "start_pst": "2025-03-11T23:00:00",
      "end_pst": "2025-03-12T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.1",
      "town": "1.9275836791666666666666666666666666666666666666667",
      "contrast": "2.1724163208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/PM25/+0",
      "start_pst": "2025-03-12T00:00:00",
      "end_pst": "2025-03-13T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.1",
      "town": "1.9291666666666666666666666666666666666666666666667",
      "contrast": "2.1708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/PM25/+0",
      "start_pst": "2025-03-12T00:00:00",
      "end_pst": "2025-03-13T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "5.0637058956521739130434782608695652173913043478261",
      "contrast": "7.0362941043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/NO2/+0",
      "start_pst": "2025-03-12T00:00:00",
      "end_pst": "2025-03-13T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "5.0652173913043478260869565217391304347826086956522",
      "contrast": "7.0347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/NO2/+0",
      "start_pst": "2025-03-12T00:00:00",
      "end_pst": "2025-03-13T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "12.058732",
      "contrast": "13.941268",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/NO2/+0",
      "start_pst": "2025-03-12T00:00:00",
      "end_pst": "2025-03-13T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "12.1",
      "contrast": "13.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/NO2/+0",
      "start_pst": "2025-03-12T00:00:00",
      "end_pst": "2025-03-13T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.1",
      "town": "1.8479313833333333333333333333333333333333333333333",
      "contrast": "2.2520686166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/PM25/+1",
      "start_pst": "2025-03-12T01:00:00",
      "end_pst": "2025-03-13T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.1",
      "town": "1.8458333333333333333333333333333333333333333333333",
      "contrast": "2.2541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/PM25/+1",
      "start_pst": "2025-03-12T01:00:00",
      "end_pst": "2025-03-13T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "5.0551658130434782608695652173913043478260869565217",
      "contrast": "7.0448341869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/NO2/+1",
      "start_pst": "2025-03-12T01:00:00",
      "end_pst": "2025-03-13T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "5.0565217391304347826086956521739130434782608695652",
      "contrast": "7.0434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/NO2/+1",
      "start_pst": "2025-03-12T01:00:00",
      "end_pst": "2025-03-13T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "12.058732",
      "contrast": "13.941268",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/NO2/+1",
      "start_pst": "2025-03-12T01:00:00",
      "end_pst": "2025-03-13T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "12.1",
      "contrast": "13.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-12/NO2/+1",
      "start_pst": "2025-03-12T01:00:00",
      "end_pst": "2025-03-13T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "1.6718423916666666666666666666666666666666666666667",
      "contrast": "2.8281576083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/PM25/-1",
      "start_pst": "2025-03-12T23:00:00",
      "end_pst": "2025-03-13T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "1.6666666666666666666666666666666666666666666666667",
      "contrast": "2.8333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/PM25/-1",
      "start_pst": "2025-03-12T23:00:00",
      "end_pst": "2025-03-13T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "3.7527767260869565217391304347826086956521739130435",
      "contrast": "3.4472232739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/NO2/-1",
      "start_pst": "2025-03-12T23:00:00",
      "end_pst": "2025-03-13T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "3.7565217391304347826086956521739130434782608695652",
      "contrast": "3.4434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/NO2/-1",
      "start_pst": "2025-03-12T23:00:00",
      "end_pst": "2025-03-13T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "11.4113503",
      "contrast": "8.6886497",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/NO2/-1",
      "start_pst": "2025-03-12T23:00:00",
      "end_pst": "2025-03-13T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "11.4",
      "contrast": "8.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/NO2/-1",
      "start_pst": "2025-03-12T23:00:00",
      "end_pst": "2025-03-13T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "1.6663926",
      "contrast": "2.8336074",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/PM25/+0",
      "start_pst": "2025-03-13T00:00:00",
      "end_pst": "2025-03-14T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "1.6583333333333333333333333333333333333333333333333",
      "contrast": "2.8416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/PM25/+0",
      "start_pst": "2025-03-13T00:00:00",
      "end_pst": "2025-03-14T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "3.7402285956521739130434782608695652173913043478261",
      "contrast": "3.4597714043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/NO2/+0",
      "start_pst": "2025-03-13T00:00:00",
      "end_pst": "2025-03-14T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "3.7434782608695652173913043478260869565217391304348",
      "contrast": "3.4565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/NO2/+0",
      "start_pst": "2025-03-13T00:00:00",
      "end_pst": "2025-03-14T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "11.4113503",
      "contrast": "8.6886497",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/NO2/+0",
      "start_pst": "2025-03-13T00:00:00",
      "end_pst": "2025-03-14T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "11.4",
      "contrast": "8.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/NO2/+0",
      "start_pst": "2025-03-13T00:00:00",
      "end_pst": "2025-03-14T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "1.6786688083333333333333333333333333333333333333333",
      "contrast": "2.8213311916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/PM25/+1",
      "start_pst": "2025-03-13T01:00:00",
      "end_pst": "2025-03-14T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "1.6708333333333333333333333333333333333333333333333",
      "contrast": "2.8291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/PM25/+1",
      "start_pst": "2025-03-13T01:00:00",
      "end_pst": "2025-03-14T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "3.6956236347826086956521739130434782608695652173913",
      "contrast": "3.5043763652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/NO2/+1",
      "start_pst": "2025-03-13T01:00:00",
      "end_pst": "2025-03-14T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "3.7",
      "contrast": "3.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/NO2/+1",
      "start_pst": "2025-03-13T01:00:00",
      "end_pst": "2025-03-14T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "11.4113503",
      "contrast": "8.6886497",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/NO2/+1",
      "start_pst": "2025-03-13T01:00:00",
      "end_pst": "2025-03-14T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "11.4",
      "contrast": "8.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-13/NO2/+1",
      "start_pst": "2025-03-13T01:00:00",
      "end_pst": "2025-03-14T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.5",
      "town": "1.2614859666666666666666666666666666666666666666667",
      "contrast": "2.2385140333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/PM25/-1",
      "start_pst": "2025-03-13T23:00:00",
      "end_pst": "2025-03-14T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.5",
      "town": "1.2625",
      "contrast": "2.2375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/PM25/-1",
      "start_pst": "2025-03-13T23:00:00",
      "end_pst": "2025-03-14T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.0742912782608695652173913043478260869565217391304",
      "contrast": "4.4257087217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/NO2/-1",
      "start_pst": "2025-03-13T23:00:00",
      "end_pst": "2025-03-14T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.0782608695652173913043478260869565217391304347826",
      "contrast": "4.4217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/NO2/-1",
      "start_pst": "2025-03-13T23:00:00",
      "end_pst": "2025-03-14T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.7",
      "town": "5.894803",
      "contrast": "23.805197",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/NO2/-1",
      "start_pst": "2025-03-13T23:00:00",
      "end_pst": "2025-03-14T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.7",
      "town": "5.9",
      "contrast": "23.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/NO2/-1",
      "start_pst": "2025-03-13T23:00:00",
      "end_pst": "2025-03-14T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.5",
      "town": "1.2736945458333333333333333333333333333333333333333",
      "contrast": "2.2263054541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/PM25/+0",
      "start_pst": "2025-03-14T00:00:00",
      "end_pst": "2025-03-15T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.5",
      "town": "1.275",
      "contrast": "2.225",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/PM25/+0",
      "start_pst": "2025-03-14T00:00:00",
      "end_pst": "2025-03-15T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.0406029304347826086956521739130434782608695652174",
      "contrast": "4.4593970695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/NO2/+0",
      "start_pst": "2025-03-14T00:00:00",
      "end_pst": "2025-03-15T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.0434782608695652173913043478260869565217391304348",
      "contrast": "4.4565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/NO2/+0",
      "start_pst": "2025-03-14T00:00:00",
      "end_pst": "2025-03-15T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.7",
      "town": "5.894803",
      "contrast": "23.805197",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/NO2/+0",
      "start_pst": "2025-03-14T00:00:00",
      "end_pst": "2025-03-15T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.7",
      "town": "5.9",
      "contrast": "23.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/NO2/+0",
      "start_pst": "2025-03-14T00:00:00",
      "end_pst": "2025-03-15T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.5",
      "town": "1.2803650458333333333333333333333333333333333333333",
      "contrast": "2.2196349541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/PM25/+1",
      "start_pst": "2025-03-14T01:00:00",
      "end_pst": "2025-03-15T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.5",
      "town": "1.2833333333333333333333333333333333333333333333333",
      "contrast": "2.2166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/PM25/+1",
      "start_pst": "2025-03-14T01:00:00",
      "end_pst": "2025-03-15T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.0426480608695652173913043478260869565217391304348",
      "contrast": "4.4573519391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/NO2/+1",
      "start_pst": "2025-03-14T01:00:00",
      "end_pst": "2025-03-15T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.0434782608695652173913043478260869565217391304348",
      "contrast": "4.4565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/NO2/+1",
      "start_pst": "2025-03-14T01:00:00",
      "end_pst": "2025-03-15T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.7",
      "town": "5.894803",
      "contrast": "23.805197",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/NO2/+1",
      "start_pst": "2025-03-14T01:00:00",
      "end_pst": "2025-03-15T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.7",
      "town": "5.9",
      "contrast": "23.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-14/NO2/+1",
      "start_pst": "2025-03-14T01:00:00",
      "end_pst": "2025-03-15T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.1",
      "town": "2.394175475",
      "contrast": "1.705824525",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/PM25/-1",
      "start_pst": "2025-03-14T23:00:00",
      "end_pst": "2025-03-15T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.1",
      "town": "2.4",
      "contrast": "1.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/PM25/-1",
      "start_pst": "2025-03-14T23:00:00",
      "end_pst": "2025-03-15T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.9234278347826086956521739130434782608695652173913",
      "contrast": "3.2765721652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/NO2/-1",
      "start_pst": "2025-03-14T23:00:00",
      "end_pst": "2025-03-15T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.9304347826086956521739130434782608695652173913043",
      "contrast": "3.2695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/NO2/-1",
      "start_pst": "2025-03-14T23:00:00",
      "end_pst": "2025-03-15T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.5875249",
      "contrast": "8.6124751",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/NO2/-1",
      "start_pst": "2025-03-14T23:00:00",
      "end_pst": "2025-03-15T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.6",
      "contrast": "8.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/NO2/-1",
      "start_pst": "2025-03-14T23:00:00",
      "end_pst": "2025-03-15T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.1",
      "town": "2.4888416041666666666666666666666666666666666666667",
      "contrast": "1.6111583958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/PM25/+0",
      "start_pst": "2025-03-15T00:00:00",
      "end_pst": "2025-03-16T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.1",
      "town": "2.4958333333333333333333333333333333333333333333333",
      "contrast": "1.6041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/PM25/+0",
      "start_pst": "2025-03-15T00:00:00",
      "end_pst": "2025-03-16T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "3.1280348695652173913043478260869565217391304347826",
      "contrast": "3.0719651304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/NO2/+0",
      "start_pst": "2025-03-15T00:00:00",
      "end_pst": "2025-03-16T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "3.1347826086956521739130434782608695652173913043478",
      "contrast": "3.0652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/NO2/+0",
      "start_pst": "2025-03-15T00:00:00",
      "end_pst": "2025-03-16T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.5875249",
      "contrast": "8.6124751",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/NO2/+0",
      "start_pst": "2025-03-15T00:00:00",
      "end_pst": "2025-03-16T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.6",
      "contrast": "8.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/NO2/+0",
      "start_pst": "2025-03-15T00:00:00",
      "end_pst": "2025-03-16T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.1",
      "town": "2.5554896458333333333333333333333333333333333333333",
      "contrast": "1.5445103541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/PM25/+1",
      "start_pst": "2025-03-15T01:00:00",
      "end_pst": "2025-03-16T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.1",
      "town": "2.5625",
      "contrast": "1.5375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/PM25/+1",
      "start_pst": "2025-03-15T01:00:00",
      "end_pst": "2025-03-16T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "3.3559879608695652173913043478260869565217391304348",
      "contrast": "2.8440120391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/NO2/+1",
      "start_pst": "2025-03-15T01:00:00",
      "end_pst": "2025-03-16T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "3.3652173913043478260869565217391304347826086956522",
      "contrast": "2.8347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/NO2/+1",
      "start_pst": "2025-03-15T01:00:00",
      "end_pst": "2025-03-16T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.3792181",
      "contrast": "7.8207819",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/NO2/+1",
      "start_pst": "2025-03-15T01:00:00",
      "end_pst": "2025-03-16T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.4",
      "contrast": "7.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-15/NO2/+1",
      "start_pst": "2025-03-15T01:00:00",
      "end_pst": "2025-03-16T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "2.5309398916666666666666666666666666666666666666667",
      "contrast": "3.0690601083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/PM25/-1",
      "start_pst": "2025-03-15T23:00:00",
      "end_pst": "2025-03-16T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "2.5291666666666666666666666666666666666666666666667",
      "contrast": "3.0708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/PM25/-1",
      "start_pst": "2025-03-15T23:00:00",
      "end_pst": "2025-03-16T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.2560683391304347826086956521739130434782608695652",
      "contrast": "3.0439316608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/NO2/-1",
      "start_pst": "2025-03-15T23:00:00",
      "end_pst": "2025-03-16T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.2521739130434782608695652173913043478260869565217",
      "contrast": "3.0478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/NO2/-1",
      "start_pst": "2025-03-15T23:00:00",
      "end_pst": "2025-03-16T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.8",
      "town": "6.3792181",
      "contrast": "15.4207819",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/NO2/-1",
      "start_pst": "2025-03-15T23:00:00",
      "end_pst": "2025-03-16T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.8",
      "town": "6.4",
      "contrast": "15.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/NO2/-1",
      "start_pst": "2025-03-15T23:00:00",
      "end_pst": "2025-03-16T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "2.4551518041666666666666666666666666666666666666667",
      "contrast": "3.1448481958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/PM25/+0",
      "start_pst": "2025-03-16T00:00:00",
      "end_pst": "2025-03-17T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "2.4541666666666666666666666666666666666666666666667",
      "contrast": "3.1458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/PM25/+0",
      "start_pst": "2025-03-16T00:00:00",
      "end_pst": "2025-03-17T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.1349044739130434782608695652173913043478260869565",
      "contrast": "3.1650955260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/NO2/+0",
      "start_pst": "2025-03-16T00:00:00",
      "end_pst": "2025-03-17T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.1304347826086956521739130434782608695652173913043",
      "contrast": "3.1695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/NO2/+0",
      "start_pst": "2025-03-16T00:00:00",
      "end_pst": "2025-03-17T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.8",
      "town": "6.3792181",
      "contrast": "15.4207819",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/NO2/+0",
      "start_pst": "2025-03-16T00:00:00",
      "end_pst": "2025-03-17T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.8",
      "town": "6.4",
      "contrast": "15.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/NO2/+0",
      "start_pst": "2025-03-16T00:00:00",
      "end_pst": "2025-03-17T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "2.3850287625",
      "contrast": "3.2149712375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/PM25/+1",
      "start_pst": "2025-03-16T01:00:00",
      "end_pst": "2025-03-17T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "2.3833333333333333333333333333333333333333333333333",
      "contrast": "3.2166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/PM25/+1",
      "start_pst": "2025-03-16T01:00:00",
      "end_pst": "2025-03-17T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "3.9697162565217391304347826086956521739130434782609",
      "contrast": "3.3302837434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/NO2/+1",
      "start_pst": "2025-03-16T01:00:00",
      "end_pst": "2025-03-17T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "3.9652173913043478260869565217391304347826086956522",
      "contrast": "3.3347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/NO2/+1",
      "start_pst": "2025-03-16T01:00:00",
      "end_pst": "2025-03-17T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.8",
      "town": "6.2065411",
      "contrast": "15.5934589",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/NO2/+1",
      "start_pst": "2025-03-16T01:00:00",
      "end_pst": "2025-03-17T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.8",
      "town": "6.2",
      "contrast": "15.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-16/NO2/+1",
      "start_pst": "2025-03-16T01:00:00",
      "end_pst": "2025-03-17T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 17,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-17/PM25/-1",
      "start_pst": "2025-03-16T23:00:00",
      "end_pst": "2025-03-17T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 17,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-17/PM25/-1",
      "start_pst": "2025-03-16T23:00:00",
      "end_pst": "2025-03-17T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "5.3165608173913043478260869565217391304347826086957",
      "contrast": "3.6834391826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-17/NO2/-1",
      "start_pst": "2025-03-16T23:00:00",
      "end_pst": "2025-03-17T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "5.3217391304347826086956521739130434782608695652174",
      "contrast": "3.6782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-17/NO2/-1",
      "start_pst": "2025-03-16T23:00:00",
      "end_pst": "2025-03-17T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.5",
      "town": "11.9580622",
      "contrast": "9.5419378",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-17/NO2/-1",
      "start_pst": "2025-03-16T23:00:00",
      "end_pst": "2025-03-17T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.5",
      "town": "12",
      "contrast": "9.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-17/NO2/-1",
      "start_pst": "2025-03-16T23:00:00",
      "end_pst": "2025-03-17T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 17,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-17/PM25/+0",
      "start_pst": "2025-03-17T00:00:00",
      "end_pst": "2025-03-18T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 17,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-17/PM25/+0",
      "start_pst": "2025-03-17T00:00:00",
      "end_pst": "2025-03-18T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "5.2807947347826086956521739130434782608695652173913",
      "contrast": "3.7192052652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-17/NO2/+0",
      "start_pst": "2025-03-17T00:00:00",
      "end_pst": "2025-03-18T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "5.2869565217391304347826086956521739130434782608696",
      "contrast": "3.7130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-17/NO2/+0",
      "start_pst": "2025-03-17T00:00:00",
      "end_pst": "2025-03-18T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.5",
      "town": "11.9580622",
      "contrast": "9.5419378",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-17/NO2/+0",
      "start_pst": "2025-03-17T00:00:00",
      "end_pst": "2025-03-18T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.5",
      "town": "12",
      "contrast": "9.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-17/NO2/+0",
      "start_pst": "2025-03-17T00:00:00",
      "end_pst": "2025-03-18T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 17,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-17/PM25/+1",
      "start_pst": "2025-03-17T01:00:00",
      "end_pst": "2025-03-18T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 17,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-03-17/PM25/+1",
      "start_pst": "2025-03-17T01:00:00",
      "end_pst": "2025-03-18T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "5.2611588173913043478260869565217391304347826086957",
      "contrast": "3.7388411826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-17/NO2/+1",
      "start_pst": "2025-03-17T01:00:00",
      "end_pst": "2025-03-18T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "5.2652173913043478260869565217391304347826086956522",
      "contrast": "3.7347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-17/NO2/+1",
      "start_pst": "2025-03-17T01:00:00",
      "end_pst": "2025-03-18T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.5",
      "town": "11.9580622",
      "contrast": "9.5419378",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-17/NO2/+1",
      "start_pst": "2025-03-17T01:00:00",
      "end_pst": "2025-03-18T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.5",
      "town": "12",
      "contrast": "9.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-17/NO2/+1",
      "start_pst": "2025-03-17T01:00:00",
      "end_pst": "2025-03-18T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "5.9444637291666666666666666666666666666666666666667",
      "contrast": "-1.4444637291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/PM25/-1",
      "start_pst": "2025-03-17T23:00:00",
      "end_pst": "2025-03-18T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "5.9375",
      "contrast": "-1.4375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/PM25/-1",
      "start_pst": "2025-03-17T23:00:00",
      "end_pst": "2025-03-18T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.6813443434782608695652173913043478260869565217391",
      "contrast": "1.8186556565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/NO2/-1",
      "start_pst": "2025-03-17T23:00:00",
      "end_pst": "2025-03-18T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.6782608695652173913043478260869565217391304347826",
      "contrast": "1.8217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/NO2/-1",
      "start_pst": "2025-03-17T23:00:00",
      "end_pst": "2025-03-18T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "10.9267359",
      "contrast": "7.5732641",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/NO2/-1",
      "start_pst": "2025-03-17T23:00:00",
      "end_pst": "2025-03-18T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "10.9",
      "contrast": "7.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/NO2/-1",
      "start_pst": "2025-03-17T23:00:00",
      "end_pst": "2025-03-18T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "6.0749258166666666666666666666666666666666666666667",
      "contrast": "-1.5749258166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/PM25/+0",
      "start_pst": "2025-03-18T00:00:00",
      "end_pst": "2025-03-19T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "6.0666666666666666666666666666666666666666666666667",
      "contrast": "-1.5666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/PM25/+0",
      "start_pst": "2025-03-18T00:00:00",
      "end_pst": "2025-03-19T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.8733262608695652173913043478260869565217391304348",
      "contrast": "1.6266737391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/NO2/+0",
      "start_pst": "2025-03-18T00:00:00",
      "end_pst": "2025-03-19T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.8695652173913043478260869565217391304347826086957",
      "contrast": "1.6304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/NO2/+0",
      "start_pst": "2025-03-18T00:00:00",
      "end_pst": "2025-03-19T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "10.9267359",
      "contrast": "7.5732641",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/NO2/+0",
      "start_pst": "2025-03-18T00:00:00",
      "end_pst": "2025-03-19T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "10.9",
      "contrast": "7.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/NO2/+0",
      "start_pst": "2025-03-18T00:00:00",
      "end_pst": "2025-03-19T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "6.0908286125",
      "contrast": "-1.5908286125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/PM25/+1",
      "start_pst": "2025-03-18T01:00:00",
      "end_pst": "2025-03-19T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "6.0833333333333333333333333333333333333333333333333",
      "contrast": "-1.5833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/PM25/+1",
      "start_pst": "2025-03-18T01:00:00",
      "end_pst": "2025-03-19T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.8838704347826086956521739130434782608695652173913",
      "contrast": "1.6161295652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/NO2/+1",
      "start_pst": "2025-03-18T01:00:00",
      "end_pst": "2025-03-19T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.8826086956521739130434782608695652173913043478261",
      "contrast": "1.6173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/NO2/+1",
      "start_pst": "2025-03-18T01:00:00",
      "end_pst": "2025-03-19T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "10.9267359",
      "contrast": "7.5732641",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/NO2/+1",
      "start_pst": "2025-03-18T01:00:00",
      "end_pst": "2025-03-19T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "10.9",
      "contrast": "7.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-18/NO2/+1",
      "start_pst": "2025-03-18T01:00:00",
      "end_pst": "2025-03-19T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "3.3011471875",
      "contrast": "0.9988528125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/PM25/-1",
      "start_pst": "2025-03-18T23:00:00",
      "end_pst": "2025-03-19T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "3.3",
      "contrast": "1.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/PM25/-1",
      "start_pst": "2025-03-18T23:00:00",
      "end_pst": "2025-03-19T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "4.5683641086956521739130434782608695652173913043478",
      "contrast": "5.8316358913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/NO2/-1",
      "start_pst": "2025-03-18T23:00:00",
      "end_pst": "2025-03-19T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "4.5565217391304347826086956521739130434782608695652",
      "contrast": "5.8434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/NO2/-1",
      "start_pst": "2025-03-18T23:00:00",
      "end_pst": "2025-03-19T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.2",
      "town": "12.734519",
      "contrast": "7.465481",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/NO2/-1",
      "start_pst": "2025-03-18T23:00:00",
      "end_pst": "2025-03-19T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.2",
      "town": "12.7",
      "contrast": "7.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/NO2/-1",
      "start_pst": "2025-03-18T23:00:00",
      "end_pst": "2025-03-19T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "2.9954898958333333333333333333333333333333333333333",
      "contrast": "1.3045101041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/PM25/+0",
      "start_pst": "2025-03-19T00:00:00",
      "end_pst": "2025-03-20T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "2.9958333333333333333333333333333333333333333333333",
      "contrast": "1.3041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/PM25/+0",
      "start_pst": "2025-03-19T00:00:00",
      "end_pst": "2025-03-20T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "4.4246371086956521739130434782608695652173913043478",
      "contrast": "5.9753628913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/NO2/+0",
      "start_pst": "2025-03-19T00:00:00",
      "end_pst": "2025-03-20T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "4.4130434782608695652173913043478260869565217391304",
      "contrast": "5.9869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/NO2/+0",
      "start_pst": "2025-03-19T00:00:00",
      "end_pst": "2025-03-20T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.2",
      "town": "12.734519",
      "contrast": "7.465481",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/NO2/+0",
      "start_pst": "2025-03-19T00:00:00",
      "end_pst": "2025-03-20T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.2",
      "town": "12.7",
      "contrast": "7.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/NO2/+0",
      "start_pst": "2025-03-19T00:00:00",
      "end_pst": "2025-03-20T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "2.8264727291666666666666666666666666666666666666667",
      "contrast": "1.4735272708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/PM25/+1",
      "start_pst": "2025-03-19T01:00:00",
      "end_pst": "2025-03-20T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "2.8291666666666666666666666666666666666666666666667",
      "contrast": "1.4708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/PM25/+1",
      "start_pst": "2025-03-19T01:00:00",
      "end_pst": "2025-03-20T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "4.4648088869565217391304347826086956521739130434783",
      "contrast": "5.9351911130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/NO2/+1",
      "start_pst": "2025-03-19T01:00:00",
      "end_pst": "2025-03-20T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "4.4521739130434782608695652173913043478260869565217",
      "contrast": "5.9478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/NO2/+1",
      "start_pst": "2025-03-19T01:00:00",
      "end_pst": "2025-03-20T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.2",
      "town": "12.734519",
      "contrast": "7.465481",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/NO2/+1",
      "start_pst": "2025-03-19T01:00:00",
      "end_pst": "2025-03-20T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.2",
      "town": "12.7",
      "contrast": "7.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-19/NO2/+1",
      "start_pst": "2025-03-19T01:00:00",
      "end_pst": "2025-03-20T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.7752528625",
      "contrast": "1.9247471375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/PM25/-1",
      "start_pst": "2025-03-19T23:00:00",
      "end_pst": "2025-03-20T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.7875",
      "contrast": "1.9125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/PM25/-1",
      "start_pst": "2025-03-19T23:00:00",
      "end_pst": "2025-03-20T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "5.9421842217391304347826086956521739130434782608696",
      "contrast": "5.0578157782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/NO2/-1",
      "start_pst": "2025-03-19T23:00:00",
      "end_pst": "2025-03-20T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "5.9391304347826086956521739130434782608695652173913",
      "contrast": "5.0608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/NO2/-1",
      "start_pst": "2025-03-19T23:00:00",
      "end_pst": "2025-03-20T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "13.1719074",
      "contrast": "13.2280926",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/NO2/-1",
      "start_pst": "2025-03-19T23:00:00",
      "end_pst": "2025-03-20T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "13.2",
      "contrast": "13.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/NO2/-1",
      "start_pst": "2025-03-19T23:00:00",
      "end_pst": "2025-03-20T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.8722814916666666666666666666666666666666666666667",
      "contrast": "1.8277185083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/PM25/+0",
      "start_pst": "2025-03-20T00:00:00",
      "end_pst": "2025-03-21T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.8833333333333333333333333333333333333333333333333",
      "contrast": "1.8166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/PM25/+0",
      "start_pst": "2025-03-20T00:00:00",
      "end_pst": "2025-03-21T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "5.9502196086956521739130434782608695652173913043478",
      "contrast": "5.0497803913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/NO2/+0",
      "start_pst": "2025-03-20T00:00:00",
      "end_pst": "2025-03-21T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "5.9478260869565217391304347826086956521739130434783",
      "contrast": "5.0521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/NO2/+0",
      "start_pst": "2025-03-20T00:00:00",
      "end_pst": "2025-03-21T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "13.1719074",
      "contrast": "13.2280926",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/NO2/+0",
      "start_pst": "2025-03-20T00:00:00",
      "end_pst": "2025-03-21T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "13.2",
      "contrast": "13.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/NO2/+0",
      "start_pst": "2025-03-20T00:00:00",
      "end_pst": "2025-03-21T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.8684111583333333333333333333333333333333333333333",
      "contrast": "1.8315888416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/PM25/+1",
      "start_pst": "2025-03-20T01:00:00",
      "end_pst": "2025-03-21T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.8791666666666666666666666666666666666666666666667",
      "contrast": "1.8208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/PM25/+1",
      "start_pst": "2025-03-20T01:00:00",
      "end_pst": "2025-03-21T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "5.9149312652173913043478260869565217391304347826087",
      "contrast": "5.0850687347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/NO2/+1",
      "start_pst": "2025-03-20T01:00:00",
      "end_pst": "2025-03-21T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "5.9130434782608695652173913043478260869565217391304",
      "contrast": "5.0869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/NO2/+1",
      "start_pst": "2025-03-20T01:00:00",
      "end_pst": "2025-03-21T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "13.1719074",
      "contrast": "13.2280926",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/NO2/+1",
      "start_pst": "2025-03-20T01:00:00",
      "end_pst": "2025-03-21T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "13.2",
      "contrast": "13.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-20/NO2/+1",
      "start_pst": "2025-03-20T01:00:00",
      "end_pst": "2025-03-21T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "2.0429630458333333333333333333333333333333333333333",
      "contrast": "1.6570369541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/PM25/-1",
      "start_pst": "2025-03-20T23:00:00",
      "end_pst": "2025-03-21T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "2.0541666666666666666666666666666666666666666666667",
      "contrast": "1.6458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/PM25/-1",
      "start_pst": "2025-03-20T23:00:00",
      "end_pst": "2025-03-21T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.5734367260869565217391304347826086956521739130435",
      "contrast": "2.3265632739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/NO2/-1",
      "start_pst": "2025-03-20T23:00:00",
      "end_pst": "2025-03-21T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.5782608695652173913043478260869565217391304347826",
      "contrast": "2.3217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/NO2/-1",
      "start_pst": "2025-03-20T23:00:00",
      "end_pst": "2025-03-21T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": "8.0435362",
      "contrast": "19.3564638",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/NO2/-1",
      "start_pst": "2025-03-20T23:00:00",
      "end_pst": "2025-03-21T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": "8",
      "contrast": "19.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/NO2/-1",
      "start_pst": "2025-03-20T23:00:00",
      "end_pst": "2025-03-21T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "1.9306574166666666666666666666666666666666666666667",
      "contrast": "1.7693425833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/PM25/+0",
      "start_pst": "2025-03-21T00:00:00",
      "end_pst": "2025-03-22T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "1.9416666666666666666666666666666666666666666666667",
      "contrast": "1.7583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/PM25/+0",
      "start_pst": "2025-03-21T00:00:00",
      "end_pst": "2025-03-22T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.6084240304347826086956521739130434782608695652174",
      "contrast": "2.2915759695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/NO2/+0",
      "start_pst": "2025-03-21T00:00:00",
      "end_pst": "2025-03-22T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.6130434782608695652173913043478260869565217391304",
      "contrast": "2.2869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/NO2/+0",
      "start_pst": "2025-03-21T00:00:00",
      "end_pst": "2025-03-22T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": "8.0435362",
      "contrast": "19.3564638",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/NO2/+0",
      "start_pst": "2025-03-21T00:00:00",
      "end_pst": "2025-03-22T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": "8",
      "contrast": "19.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/NO2/+0",
      "start_pst": "2025-03-21T00:00:00",
      "end_pst": "2025-03-22T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "1.9491074583333333333333333333333333333333333333333",
      "contrast": "1.7508925416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/PM25/+1",
      "start_pst": "2025-03-21T01:00:00",
      "end_pst": "2025-03-22T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "1.9583333333333333333333333333333333333333333333333",
      "contrast": "1.7416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/PM25/+1",
      "start_pst": "2025-03-21T01:00:00",
      "end_pst": "2025-03-22T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.5674185086956521739130434782608695652173913043478",
      "contrast": "2.3325814913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/NO2/+1",
      "start_pst": "2025-03-21T01:00:00",
      "end_pst": "2025-03-22T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.5695652173913043478260869565217391304347826086957",
      "contrast": "2.3304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/NO2/+1",
      "start_pst": "2025-03-21T01:00:00",
      "end_pst": "2025-03-22T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": "8.0435362",
      "contrast": "19.3564638",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/NO2/+1",
      "start_pst": "2025-03-21T01:00:00",
      "end_pst": "2025-03-22T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": "8",
      "contrast": "19.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-21/NO2/+1",
      "start_pst": "2025-03-21T01:00:00",
      "end_pst": "2025-03-22T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.4142169416666666666666666666666666666666666666667",
      "contrast": "2.6857830583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/PM25/-1",
      "start_pst": "2025-03-21T23:00:00",
      "end_pst": "2025-03-22T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.4083333333333333333333333333333333333333333333333",
      "contrast": "2.6916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/PM25/-1",
      "start_pst": "2025-03-21T23:00:00",
      "end_pst": "2025-03-22T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.1683184086956521739130434782608695652173913043478",
      "contrast": "2.1316815913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/NO2/-1",
      "start_pst": "2025-03-21T23:00:00",
      "end_pst": "2025-03-22T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.1652173913043478260869565217391304347826086956522",
      "contrast": "2.1347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/NO2/-1",
      "start_pst": "2025-03-21T23:00:00",
      "end_pst": "2025-03-22T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.3",
      "town": "6.5400681",
      "contrast": "15.7599319",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/NO2/-1",
      "start_pst": "2025-03-21T23:00:00",
      "end_pst": "2025-03-22T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.3",
      "town": "6.5",
      "contrast": "15.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/NO2/-1",
      "start_pst": "2025-03-21T23:00:00",
      "end_pst": "2025-03-22T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.465996775",
      "contrast": "2.634003225",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/PM25/+0",
      "start_pst": "2025-03-22T00:00:00",
      "end_pst": "2025-03-23T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.4583333333333333333333333333333333333333333333333",
      "contrast": "2.6416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/PM25/+0",
      "start_pst": "2025-03-22T00:00:00",
      "end_pst": "2025-03-23T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.1281051043478260869565217391304347826086956521739",
      "contrast": "2.1718948956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/NO2/+0",
      "start_pst": "2025-03-22T00:00:00",
      "end_pst": "2025-03-23T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.1260869565217391304347826086956521739130434782609",
      "contrast": "2.1739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/NO2/+0",
      "start_pst": "2025-03-22T00:00:00",
      "end_pst": "2025-03-23T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.3",
      "town": "6.5400681",
      "contrast": "15.7599319",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/NO2/+0",
      "start_pst": "2025-03-22T00:00:00",
      "end_pst": "2025-03-23T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.3",
      "town": "6.5",
      "contrast": "15.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/NO2/+0",
      "start_pst": "2025-03-22T00:00:00",
      "end_pst": "2025-03-23T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.473011775",
      "contrast": "2.626988225",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/PM25/+1",
      "start_pst": "2025-03-22T01:00:00",
      "end_pst": "2025-03-23T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.4666666666666666666666666666666666666666666666667",
      "contrast": "2.6333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/PM25/+1",
      "start_pst": "2025-03-22T01:00:00",
      "end_pst": "2025-03-23T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.1714850608695652173913043478260869565217391304348",
      "contrast": "2.1285149391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/NO2/+1",
      "start_pst": "2025-03-22T01:00:00",
      "end_pst": "2025-03-23T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.1695652173913043478260869565217391304347826086957",
      "contrast": "2.1304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/NO2/+1",
      "start_pst": "2025-03-22T01:00:00",
      "end_pst": "2025-03-23T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.3",
      "town": "6.5400681",
      "contrast": "15.7599319",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/NO2/+1",
      "start_pst": "2025-03-22T01:00:00",
      "end_pst": "2025-03-23T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.3",
      "town": "6.5",
      "contrast": "15.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-22/NO2/+1",
      "start_pst": "2025-03-22T01:00:00",
      "end_pst": "2025-03-23T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "1.80357805",
      "contrast": "3.19642195",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-23/PM25/-1",
      "start_pst": "2025-03-22T23:00:00",
      "end_pst": "2025-03-23T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "1.7958333333333333333333333333333333333333333333333",
      "contrast": "3.2041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-23/PM25/-1",
      "start_pst": "2025-03-22T23:00:00",
      "end_pst": "2025-03-23T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "2.4885895347826086956521739130434782608695652173913",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-23/NO2/-1",
      "start_pst": "2025-03-22T23:00:00",
      "end_pst": "2025-03-23T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "2.4826086956521739130434782608695652173913043478261",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-23/NO2/-1",
      "start_pst": "2025-03-22T23:00:00",
      "end_pst": "2025-03-23T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.8229761",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-23/NO2/-1",
      "start_pst": "2025-03-22T23:00:00",
      "end_pst": "2025-03-23T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.8",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-23/NO2/-1",
      "start_pst": "2025-03-22T23:00:00",
      "end_pst": "2025-03-23T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "1.7862477166666666666666666666666666666666666666667",
      "contrast": "3.2137522833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-23/PM25/+0",
      "start_pst": "2025-03-23T00:00:00",
      "end_pst": "2025-03-24T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "1.7791666666666666666666666666666666666666666666667",
      "contrast": "3.2208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-23/PM25/+0",
      "start_pst": "2025-03-23T00:00:00",
      "end_pst": "2025-03-24T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "2.4035369260869565217391304347826086956521739130435",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-23/NO2/+0",
      "start_pst": "2025-03-23T00:00:00",
      "end_pst": "2025-03-24T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "2.3956521739130434782608695652173913043478260869565",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-23/NO2/+0",
      "start_pst": "2025-03-23T00:00:00",
      "end_pst": "2025-03-24T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.8229761",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-23/NO2/+0",
      "start_pst": "2025-03-23T00:00:00",
      "end_pst": "2025-03-24T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.8",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-23/NO2/+0",
      "start_pst": "2025-03-23T00:00:00",
      "end_pst": "2025-03-24T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "1.7788571333333333333333333333333333333333333333333",
      "contrast": "3.2211428666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-23/PM25/+1",
      "start_pst": "2025-03-23T01:00:00",
      "end_pst": "2025-03-24T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "1.7708333333333333333333333333333333333333333333333",
      "contrast": "3.2291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-23/PM25/+1",
      "start_pst": "2025-03-23T01:00:00",
      "end_pst": "2025-03-24T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "2.3436302739130434782608695652173913043478260869565",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-23/NO2/+1",
      "start_pst": "2025-03-23T01:00:00",
      "end_pst": "2025-03-24T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "2.3391304347826086956521739130434782608695652173913",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-23/NO2/+1",
      "start_pst": "2025-03-23T01:00:00",
      "end_pst": "2025-03-24T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.8229761",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-23/NO2/+1",
      "start_pst": "2025-03-23T01:00:00",
      "end_pst": "2025-03-24T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.8",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-23/NO2/+1",
      "start_pst": "2025-03-23T01:00:00",
      "end_pst": "2025-03-24T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "1.8666145125",
      "contrast": "3.6333854875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-24/PM25/-1",
      "start_pst": "2025-03-23T23:00:00",
      "end_pst": "2025-03-24T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "1.8625",
      "contrast": "3.6375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-24/PM25/-1",
      "start_pst": "2025-03-23T23:00:00",
      "end_pst": "2025-03-24T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "3.1951723304347826086956521739130434782608695652174",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-24/NO2/-1",
      "start_pst": "2025-03-23T23:00:00",
      "end_pst": "2025-03-24T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "3.1956521739130434782608695652173913043478260869565",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-24/NO2/-1",
      "start_pst": "2025-03-23T23:00:00",
      "end_pst": "2025-03-24T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "9.1263199",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-24/NO2/-1",
      "start_pst": "2025-03-23T23:00:00",
      "end_pst": "2025-03-24T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "9.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-24/NO2/-1",
      "start_pst": "2025-03-23T23:00:00",
      "end_pst": "2025-03-24T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "1.8465548875",
      "contrast": "3.6534451125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-24/PM25/+0",
      "start_pst": "2025-03-24T00:00:00",
      "end_pst": "2025-03-25T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "1.8416666666666666666666666666666666666666666666667",
      "contrast": "3.6583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-24/PM25/+0",
      "start_pst": "2025-03-24T00:00:00",
      "end_pst": "2025-03-25T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "3.1726735478260869565217391304347826086956521739130",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-24/NO2/+0",
      "start_pst": "2025-03-24T00:00:00",
      "end_pst": "2025-03-25T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "3.1739130434782608695652173913043478260869565217391",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-24/NO2/+0",
      "start_pst": "2025-03-24T00:00:00",
      "end_pst": "2025-03-25T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "9.1263199",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-24/NO2/+0",
      "start_pst": "2025-03-24T00:00:00",
      "end_pst": "2025-03-25T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "9.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-24/NO2/+0",
      "start_pst": "2025-03-24T00:00:00",
      "end_pst": "2025-03-25T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "1.8395949291666666666666666666666666666666666666667",
      "contrast": "3.6604050708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-24/PM25/+1",
      "start_pst": "2025-03-24T01:00:00",
      "end_pst": "2025-03-25T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "1.8333333333333333333333333333333333333333333333333",
      "contrast": "3.6666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-24/PM25/+1",
      "start_pst": "2025-03-24T01:00:00",
      "end_pst": "2025-03-25T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "3.1498652434782608695652173913043478260869565217391",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-24/NO2/+1",
      "start_pst": "2025-03-24T01:00:00",
      "end_pst": "2025-03-25T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "3.1478260869565217391304347826086956521739130434783",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-24/NO2/+1",
      "start_pst": "2025-03-24T01:00:00",
      "end_pst": "2025-03-25T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "9.1263199",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-24/NO2/+1",
      "start_pst": "2025-03-24T01:00:00",
      "end_pst": "2025-03-25T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "9.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-24/NO2/+1",
      "start_pst": "2025-03-24T01:00:00",
      "end_pst": "2025-03-25T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "1.0924528791666666666666666666666666666666666666667",
      "contrast": "2.6075471208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-25/PM25/-1",
      "start_pst": "2025-03-24T23:00:00",
      "end_pst": "2025-03-25T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "1.0916666666666666666666666666666666666666666666667",
      "contrast": "2.6083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-25/PM25/-1",
      "start_pst": "2025-03-24T23:00:00",
      "end_pst": "2025-03-25T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "1.2054141260869565217391304347826086956521739130435",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-25/NO2/-1",
      "start_pst": "2025-03-24T23:00:00",
      "end_pst": "2025-03-25T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "1.2086956521739130434782608695652173913043478260870",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-25/NO2/-1",
      "start_pst": "2025-03-24T23:00:00",
      "end_pst": "2025-03-25T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "3.338758",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-25/NO2/-1",
      "start_pst": "2025-03-24T23:00:00",
      "end_pst": "2025-03-25T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "3.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-25/NO2/-1",
      "start_pst": "2025-03-24T23:00:00",
      "end_pst": "2025-03-25T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "1.0884726291666666666666666666666666666666666666667",
      "contrast": "2.6115273708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-25/PM25/+0",
      "start_pst": "2025-03-25T00:00:00",
      "end_pst": "2025-03-26T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "1.0875",
      "contrast": "2.6125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-25/PM25/+0",
      "start_pst": "2025-03-25T00:00:00",
      "end_pst": "2025-03-26T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "1.2008546043478260869565217391304347826086956521739",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-25/NO2/+0",
      "start_pst": "2025-03-25T00:00:00",
      "end_pst": "2025-03-26T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "1.2043478260869565217391304347826086956521739130435",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-25/NO2/+0",
      "start_pst": "2025-03-25T00:00:00",
      "end_pst": "2025-03-26T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "3.338758",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-25/NO2/+0",
      "start_pst": "2025-03-25T00:00:00",
      "end_pst": "2025-03-26T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "3.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-25/NO2/+0",
      "start_pst": "2025-03-25T00:00:00",
      "end_pst": "2025-03-26T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "1.0848244208333333333333333333333333333333333333333",
      "contrast": "2.6151755791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-25/PM25/+1",
      "start_pst": "2025-03-25T01:00:00",
      "end_pst": "2025-03-26T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "1.0875",
      "contrast": "2.6125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-25/PM25/+1",
      "start_pst": "2025-03-25T01:00:00",
      "end_pst": "2025-03-26T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "1.1886720391304347826086956521739130434782608695652",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-25/NO2/+1",
      "start_pst": "2025-03-25T01:00:00",
      "end_pst": "2025-03-26T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "1.1956521739130434782608695652173913043478260869565",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-25/NO2/+1",
      "start_pst": "2025-03-25T01:00:00",
      "end_pst": "2025-03-26T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "3.338758",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-25/NO2/+1",
      "start_pst": "2025-03-25T01:00:00",
      "end_pst": "2025-03-26T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "3.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-25/NO2/+1",
      "start_pst": "2025-03-25T01:00:00",
      "end_pst": "2025-03-26T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "1.9754251958333333333333333333333333333333333333333",
      "contrast": "4.6245748041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-26/PM25/-1",
      "start_pst": "2025-03-25T23:00:00",
      "end_pst": "2025-03-26T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "1.9708333333333333333333333333333333333333333333333",
      "contrast": "4.6291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-26/PM25/-1",
      "start_pst": "2025-03-25T23:00:00",
      "end_pst": "2025-03-26T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "1.6582202217391304347826086956521739130434782608696",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-26/NO2/-1",
      "start_pst": "2025-03-25T23:00:00",
      "end_pst": "2025-03-26T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "1.6521739130434782608695652173913043478260869565217",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-26/NO2/-1",
      "start_pst": "2025-03-25T23:00:00",
      "end_pst": "2025-03-26T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "5.916913",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-26/NO2/-1",
      "start_pst": "2025-03-25T23:00:00",
      "end_pst": "2025-03-26T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "5.9",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-26/NO2/-1",
      "start_pst": "2025-03-25T23:00:00",
      "end_pst": "2025-03-26T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.0486158208333333333333333333333333333333333333333",
      "contrast": "4.5513841791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-26/PM25/+0",
      "start_pst": "2025-03-26T00:00:00",
      "end_pst": "2025-03-27T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.0458333333333333333333333333333333333333333333333",
      "contrast": "4.5541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-26/PM25/+0",
      "start_pst": "2025-03-26T00:00:00",
      "end_pst": "2025-03-27T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "1.6977662217391304347826086956521739130434782608696",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-26/NO2/+0",
      "start_pst": "2025-03-26T00:00:00",
      "end_pst": "2025-03-27T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "1.6913043478260869565217391304347826086956521739130",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-26/NO2/+0",
      "start_pst": "2025-03-26T00:00:00",
      "end_pst": "2025-03-27T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "5.916913",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-26/NO2/+0",
      "start_pst": "2025-03-26T00:00:00",
      "end_pst": "2025-03-27T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "5.9",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-26/NO2/+0",
      "start_pst": "2025-03-26T00:00:00",
      "end_pst": "2025-03-27T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.0902308208333333333333333333333333333333333333333",
      "contrast": "4.5097691791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-26/PM25/+1",
      "start_pst": "2025-03-26T01:00:00",
      "end_pst": "2025-03-27T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.0875",
      "contrast": "4.5125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-26/PM25/+1",
      "start_pst": "2025-03-26T01:00:00",
      "end_pst": "2025-03-27T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "1.7000351347826086956521739130434782608695652173913",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-26/NO2/+1",
      "start_pst": "2025-03-26T01:00:00",
      "end_pst": "2025-03-27T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "1.6913043478260869565217391304347826086956521739130",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-26/NO2/+1",
      "start_pst": "2025-03-26T01:00:00",
      "end_pst": "2025-03-27T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "5.916913",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-26/NO2/+1",
      "start_pst": "2025-03-26T01:00:00",
      "end_pst": "2025-03-27T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "5.9",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-26/NO2/+1",
      "start_pst": "2025-03-26T01:00:00",
      "end_pst": "2025-03-27T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.3412849375",
      "contrast": "3.5587150625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/PM25/-1",
      "start_pst": "2025-03-26T23:00:00",
      "end_pst": "2025-03-27T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.3458333333333333333333333333333333333333333333333",
      "contrast": "3.5541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/PM25/-1",
      "start_pst": "2025-03-26T23:00:00",
      "end_pst": "2025-03-27T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.7",
      "town": "3.4401574913043478260869565217391304347826086956522",
      "contrast": "9.2598425086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/NO2/-1",
      "start_pst": "2025-03-26T23:00:00",
      "end_pst": "2025-03-27T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.7",
      "town": "3.4391304347826086956521739130434782608695652173913",
      "contrast": "9.2608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/NO2/-1",
      "start_pst": "2025-03-26T23:00:00",
      "end_pst": "2025-03-27T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.6",
      "town": "9.3453159",
      "contrast": "25.2546841",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/NO2/-1",
      "start_pst": "2025-03-26T23:00:00",
      "end_pst": "2025-03-27T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.6",
      "town": "9.3",
      "contrast": "25.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/NO2/-1",
      "start_pst": "2025-03-26T23:00:00",
      "end_pst": "2025-03-27T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.2965248541666666666666666666666666666666666666667",
      "contrast": "3.6034751458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/PM25/+0",
      "start_pst": "2025-03-27T00:00:00",
      "end_pst": "2025-03-28T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.3",
      "contrast": "3.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/PM25/+0",
      "start_pst": "2025-03-27T00:00:00",
      "end_pst": "2025-03-28T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.7",
      "town": "3.4130764478260869565217391304347826086956521739130",
      "contrast": "9.2869235521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/NO2/+0",
      "start_pst": "2025-03-27T00:00:00",
      "end_pst": "2025-03-28T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.7",
      "town": "3.4130434782608695652173913043478260869565217391304",
      "contrast": "9.2869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/NO2/+0",
      "start_pst": "2025-03-27T00:00:00",
      "end_pst": "2025-03-28T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.6",
      "town": "9.3453159",
      "contrast": "25.2546841",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/NO2/+0",
      "start_pst": "2025-03-27T00:00:00",
      "end_pst": "2025-03-28T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.6",
      "town": "9.3",
      "contrast": "25.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/NO2/+0",
      "start_pst": "2025-03-27T00:00:00",
      "end_pst": "2025-03-28T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.2936474791666666666666666666666666666666666666667",
      "contrast": "3.6063525208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/PM25/+1",
      "start_pst": "2025-03-27T01:00:00",
      "end_pst": "2025-03-28T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.2958333333333333333333333333333333333333333333333",
      "contrast": "3.6041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/PM25/+1",
      "start_pst": "2025-03-27T01:00:00",
      "end_pst": "2025-03-28T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.7",
      "town": "3.4192441",
      "contrast": "9.2807559",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/NO2/+1",
      "start_pst": "2025-03-27T01:00:00",
      "end_pst": "2025-03-28T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.7",
      "town": "3.4173913043478260869565217391304347826086956521739",
      "contrast": "9.2826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/NO2/+1",
      "start_pst": "2025-03-27T01:00:00",
      "end_pst": "2025-03-28T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.6",
      "town": "9.3453159",
      "contrast": "25.2546841",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/NO2/+1",
      "start_pst": "2025-03-27T01:00:00",
      "end_pst": "2025-03-28T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.6",
      "town": "9.3",
      "contrast": "25.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-27/NO2/+1",
      "start_pst": "2025-03-27T01:00:00",
      "end_pst": "2025-03-28T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "3.2153642083333333333333333333333333333333333333333",
      "contrast": "1.1846357916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-28/PM25/-1",
      "start_pst": "2025-03-27T23:00:00",
      "end_pst": "2025-03-28T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "3.2208333333333333333333333333333333333333333333333",
      "contrast": "1.1791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-28/PM25/-1",
      "start_pst": "2025-03-27T23:00:00",
      "end_pst": "2025-03-28T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "5.0212841086956521739130434782608695652173913043478",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-28/NO2/-1",
      "start_pst": "2025-03-27T23:00:00",
      "end_pst": "2025-03-28T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "5.0217391304347826086956521739130434782608695652174",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-28/NO2/-1",
      "start_pst": "2025-03-27T23:00:00",
      "end_pst": "2025-03-28T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "8.8846226",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-28/NO2/-1",
      "start_pst": "2025-03-27T23:00:00",
      "end_pst": "2025-03-28T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "8.9",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-28/NO2/-1",
      "start_pst": "2025-03-27T23:00:00",
      "end_pst": "2025-03-28T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "3.452127175",
      "contrast": "0.947872825",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-28/PM25/+0",
      "start_pst": "2025-03-28T00:00:00",
      "end_pst": "2025-03-29T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "3.4583333333333333333333333333333333333333333333333",
      "contrast": "0.9416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-28/PM25/+0",
      "start_pst": "2025-03-28T00:00:00",
      "end_pst": "2025-03-29T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "5.1872668434782608695652173913043478260869565217391",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-28/NO2/+0",
      "start_pst": "2025-03-28T00:00:00",
      "end_pst": "2025-03-29T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "5.1869565217391304347826086956521739130434782608696",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-28/NO2/+0",
      "start_pst": "2025-03-28T00:00:00",
      "end_pst": "2025-03-29T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "8.8846226",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-28/NO2/+0",
      "start_pst": "2025-03-28T00:00:00",
      "end_pst": "2025-03-29T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "8.9",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-28/NO2/+0",
      "start_pst": "2025-03-28T00:00:00",
      "end_pst": "2025-03-29T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "3.5252767166666666666666666666666666666666666666667",
      "contrast": "0.8747232833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-28/PM25/+1",
      "start_pst": "2025-03-28T01:00:00",
      "end_pst": "2025-03-29T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "3.5291666666666666666666666666666666666666666666667",
      "contrast": "0.8708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-28/PM25/+1",
      "start_pst": "2025-03-28T01:00:00",
      "end_pst": "2025-03-29T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "5.2993531913043478260869565217391304347826086956522",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-28/NO2/+1",
      "start_pst": "2025-03-28T01:00:00",
      "end_pst": "2025-03-29T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "5.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-28/NO2/+1",
      "start_pst": "2025-03-28T01:00:00",
      "end_pst": "2025-03-29T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "8.8846226",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-28/NO2/+1",
      "start_pst": "2025-03-28T01:00:00",
      "end_pst": "2025-03-29T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "8.9",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-03-28/NO2/+1",
      "start_pst": "2025-03-28T01:00:00",
      "end_pst": "2025-03-29T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "5.7588120375",
      "contrast": "-1.1588120375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/PM25/-1",
      "start_pst": "2025-03-28T23:00:00",
      "end_pst": "2025-03-29T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "5.7541666666666666666666666666666666666666666666667",
      "contrast": "-1.1541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/PM25/-1",
      "start_pst": "2025-03-28T23:00:00",
      "end_pst": "2025-03-29T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "4.9827050434782608695652173913043478260869565217391",
      "contrast": "4.2172949565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/NO2/-1",
      "start_pst": "2025-03-28T23:00:00",
      "end_pst": "2025-03-29T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "4.9869565217391304347826086956521739130434782608696",
      "contrast": "4.2130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/NO2/-1",
      "start_pst": "2025-03-28T23:00:00",
      "end_pst": "2025-03-29T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.2",
      "town": "9.4983406",
      "contrast": "13.7016594",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/NO2/-1",
      "start_pst": "2025-03-28T23:00:00",
      "end_pst": "2025-03-29T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.2",
      "town": "9.5",
      "contrast": "13.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/NO2/-1",
      "start_pst": "2025-03-28T23:00:00",
      "end_pst": "2025-03-29T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "5.7268633708333333333333333333333333333333333333333",
      "contrast": "-1.1268633708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/PM25/+0",
      "start_pst": "2025-03-29T00:00:00",
      "end_pst": "2025-03-30T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "5.7208333333333333333333333333333333333333333333333",
      "contrast": "-1.1208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/PM25/+0",
      "start_pst": "2025-03-29T00:00:00",
      "end_pst": "2025-03-30T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "4.8810137434782608695652173913043478260869565217391",
      "contrast": "4.3189862565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/NO2/+0",
      "start_pst": "2025-03-29T00:00:00",
      "end_pst": "2025-03-30T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "4.8869565217391304347826086956521739130434782608696",
      "contrast": "4.3130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/NO2/+0",
      "start_pst": "2025-03-29T00:00:00",
      "end_pst": "2025-03-30T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.2",
      "town": "9.4983406",
      "contrast": "13.7016594",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/NO2/+0",
      "start_pst": "2025-03-29T00:00:00",
      "end_pst": "2025-03-30T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.2",
      "town": "9.5",
      "contrast": "13.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/NO2/+0",
      "start_pst": "2025-03-29T00:00:00",
      "end_pst": "2025-03-30T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "5.799736875",
      "contrast": "-1.199736875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/PM25/+1",
      "start_pst": "2025-03-29T01:00:00",
      "end_pst": "2025-03-30T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "5.7958333333333333333333333333333333333333333333333",
      "contrast": "-1.1958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/PM25/+1",
      "start_pst": "2025-03-29T01:00:00",
      "end_pst": "2025-03-30T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "4.9607373681818181818181818181818181818181818181818",
      "contrast": "4.2392626318181818181818181818181818181818181818182",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/NO2/+1",
      "start_pst": "2025-03-29T01:00:00",
      "end_pst": "2025-03-30T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "4.9681818181818181818181818181818181818181818181818",
      "contrast": "4.2318181818181818181818181818181818181818181818182",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/NO2/+1",
      "start_pst": "2025-03-29T01:00:00",
      "end_pst": "2025-03-30T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.2",
      "town": "9.4983406",
      "contrast": "13.7016594",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/NO2/+1",
      "start_pst": "2025-03-29T01:00:00",
      "end_pst": "2025-03-30T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.2",
      "town": "9.5",
      "contrast": "13.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-29/NO2/+1",
      "start_pst": "2025-03-29T01:00:00",
      "end_pst": "2025-03-30T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "2.923408225",
      "contrast": "2.776591775",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/PM25/-1",
      "start_pst": "2025-03-29T23:00:00",
      "end_pst": "2025-03-30T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "2.9208333333333333333333333333333333333333333333333",
      "contrast": "2.7791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/PM25/-1",
      "start_pst": "2025-03-29T23:00:00",
      "end_pst": "2025-03-30T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.0197216695652173913043478260869565217391304347826",
      "contrast": "4.0802783304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/NO2/-1",
      "start_pst": "2025-03-29T23:00:00",
      "end_pst": "2025-03-30T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.0086956521739130434782608695652173913043478260870",
      "contrast": "4.0913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/NO2/-1",
      "start_pst": "2025-03-29T23:00:00",
      "end_pst": "2025-03-30T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "15.4321537",
      "contrast": "6.4678463",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/NO2/-1",
      "start_pst": "2025-03-29T23:00:00",
      "end_pst": "2025-03-30T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "15.4",
      "contrast": "6.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/NO2/-1",
      "start_pst": "2025-03-29T23:00:00",
      "end_pst": "2025-03-30T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "2.8576297125",
      "contrast": "2.8423702875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/PM25/+0",
      "start_pst": "2025-03-30T00:00:00",
      "end_pst": "2025-03-31T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "2.8583333333333333333333333333333333333333333333333",
      "contrast": "2.8416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/PM25/+0",
      "start_pst": "2025-03-30T00:00:00",
      "end_pst": "2025-03-31T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.0589177909090909090909090909090909090909090909091",
      "contrast": "4.0410822090909090909090909090909090909090909090909",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/NO2/+0",
      "start_pst": "2025-03-30T00:00:00",
      "end_pst": "2025-03-31T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.0454545454545454545454545454545454545454545454545",
      "contrast": "4.0545454545454545454545454545454545454545454545455",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/NO2/+0",
      "start_pst": "2025-03-30T00:00:00",
      "end_pst": "2025-03-31T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "15.4321537",
      "contrast": "6.4678463",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/NO2/+0",
      "start_pst": "2025-03-30T00:00:00",
      "end_pst": "2025-03-31T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "15.4",
      "contrast": "6.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/NO2/+0",
      "start_pst": "2025-03-30T00:00:00",
      "end_pst": "2025-03-31T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "2.807120875",
      "contrast": "2.892879125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/PM25/+1",
      "start_pst": "2025-03-30T01:00:00",
      "end_pst": "2025-03-31T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "2.8083333333333333333333333333333333333333333333333",
      "contrast": "2.8916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/PM25/+1",
      "start_pst": "2025-03-30T01:00:00",
      "end_pst": "2025-03-31T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.0400191043478260869565217391304347826086956521739",
      "contrast": "4.0599808956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/NO2/+1",
      "start_pst": "2025-03-30T01:00:00",
      "end_pst": "2025-03-31T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.0260869565217391304347826086956521739130434782609",
      "contrast": "4.0739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/NO2/+1",
      "start_pst": "2025-03-30T01:00:00",
      "end_pst": "2025-03-31T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "15.4321537",
      "contrast": "6.4678463",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/NO2/+1",
      "start_pst": "2025-03-30T01:00:00",
      "end_pst": "2025-03-31T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "15.4",
      "contrast": "6.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-30/NO2/+1",
      "start_pst": "2025-03-30T01:00:00",
      "end_pst": "2025-03-31T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-31",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "3.2615968291666666666666666666666666666666666666667",
      "contrast": "3.6384031708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/PM25/-1",
      "start_pst": "2025-03-30T23:00:00",
      "end_pst": "2025-03-31T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-31",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "3.2708333333333333333333333333333333333333333333333",
      "contrast": "3.6291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/PM25/-1",
      "start_pst": "2025-03-30T23:00:00",
      "end_pst": "2025-03-31T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-31",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "5.2555483363636363636363636363636363636363636363636",
      "contrast": "5.9444516636363636363636363636363636363636363636364",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/NO2/-1",
      "start_pst": "2025-03-30T23:00:00",
      "end_pst": "2025-03-31T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-31",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "5.2636363636363636363636363636363636363636363636364",
      "contrast": "5.9363636363636363636363636363636363636363636363636",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/NO2/-1",
      "start_pst": "2025-03-30T23:00:00",
      "end_pst": "2025-03-31T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.4",
      "town": "10.5330982",
      "contrast": "14.8669018",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/NO2/-1",
      "start_pst": "2025-03-30T23:00:00",
      "end_pst": "2025-03-31T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.4",
      "town": "10.5",
      "contrast": "14.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/NO2/-1",
      "start_pst": "2025-03-30T23:00:00",
      "end_pst": "2025-03-31T23:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "3.2722963375",
      "contrast": "3.6277036625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/PM25/+0",
      "start_pst": "2025-03-31T00:00:00",
      "end_pst": "2025-04-01T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "3.2791666666666666666666666666666666666666666666667",
      "contrast": "3.6208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/PM25/+0",
      "start_pst": "2025-03-31T00:00:00",
      "end_pst": "2025-04-01T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-31",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "5.2555483363636363636363636363636363636363636363636",
      "contrast": "5.9444516636363636363636363636363636363636363636364",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/NO2/+0",
      "start_pst": "2025-03-31T00:00:00",
      "end_pst": "2025-04-01T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-31",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "5.2636363636363636363636363636363636363636363636364",
      "contrast": "5.9363636363636363636363636363636363636363636363636",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/NO2/+0",
      "start_pst": "2025-03-31T00:00:00",
      "end_pst": "2025-04-01T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.4",
      "town": "10.5330982",
      "contrast": "14.8669018",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/NO2/+0",
      "start_pst": "2025-03-31T00:00:00",
      "end_pst": "2025-04-01T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.4",
      "town": "10.5",
      "contrast": "14.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/NO2/+0",
      "start_pst": "2025-03-31T00:00:00",
      "end_pst": "2025-04-01T00:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "3.3113857208333333333333333333333333333333333333333",
      "contrast": "3.5886142791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/PM25/+1",
      "start_pst": "2025-03-31T01:00:00",
      "end_pst": "2025-04-01T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "3.3166666666666666666666666666666666666666666666667",
      "contrast": "3.5833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/PM25/+1",
      "start_pst": "2025-03-31T01:00:00",
      "end_pst": "2025-04-01T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-03-31",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "5.3808483523809523809523809523809523809523809523810",
      "contrast": "5.8191516476190476190476190476190476190476190476190",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/NO2/+1",
      "start_pst": "2025-03-31T01:00:00",
      "end_pst": "2025-04-01T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-31",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "5.3904761904761904761904761904761904761904761904762",
      "contrast": "5.8095238095238095238095238095238095238095238095238",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/NO2/+1",
      "start_pst": "2025-03-31T01:00:00",
      "end_pst": "2025-04-01T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-03-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.4",
      "town": "10.5330982",
      "contrast": "14.8669018",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/NO2/+1",
      "start_pst": "2025-03-31T01:00:00",
      "end_pst": "2025-04-01T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-03-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.4",
      "town": "10.5",
      "contrast": "14.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-03-31/NO2/+1",
      "start_pst": "2025-03-31T01:00:00",
      "end_pst": "2025-04-01T01:00:00",
      "onsite_source": {
        "month": "2025-03",
        "date_printed": "3/31/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-3",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/05/WLNG-AQMS-Monthly-Report-2025-03-March-2025_v.01-1.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-03.pdf",
        "source_pdf_sha256": "c6664146e9b75c828f9030aa6aacf8cfdec699e03424190e7343db26ea92e6e7",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-03/table-b1-air-native.csv",
        "source_csv_sha256": "ee0d9ab5a8f7d31987ef2baf5944c1640b633422278160f961631302545d34eb",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.3445842583333333333333333333333333333333333333333",
      "contrast": "1.8554157416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-01/PM25/-1",
      "start_pst": "2025-03-31T23:00:00",
      "end_pst": "2025-04-01T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.3458333333333333333333333333333333333333333333333",
      "contrast": "1.8541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-01/PM25/-1",
      "start_pst": "2025-03-31T23:00:00",
      "end_pst": "2025-04-01T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 12,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-01/NO2/-1",
      "start_pst": "2025-03-31T23:00:00",
      "end_pst": "2025-04-01T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 12,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-01/NO2/-1",
      "start_pst": "2025-03-31T23:00:00",
      "end_pst": "2025-04-01T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "38.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "38.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 12,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-01/NO2/-1",
      "start_pst": "2025-03-31T23:00:00",
      "end_pst": "2025-04-01T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "38.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "38.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 12,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-01/NO2/-1",
      "start_pst": "2025-03-31T23:00:00",
      "end_pst": "2025-04-01T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.2737792166666666666666666666666666666666666666667",
      "contrast": "1.9262207833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-01/PM25/+0",
      "start_pst": "2025-04-01T00:00:00",
      "end_pst": "2025-04-02T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.275",
      "contrast": "1.925",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-01/PM25/+0",
      "start_pst": "2025-04-01T00:00:00",
      "end_pst": "2025-04-02T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-01/NO2/+0",
      "start_pst": "2025-04-01T00:00:00",
      "end_pst": "2025-04-02T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-01/NO2/+0",
      "start_pst": "2025-04-01T00:00:00",
      "end_pst": "2025-04-02T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "38.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "38.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-01/NO2/+0",
      "start_pst": "2025-04-01T00:00:00",
      "end_pst": "2025-04-02T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "38.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "38.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 13,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-01/NO2/+0",
      "start_pst": "2025-04-01T00:00:00",
      "end_pst": "2025-04-02T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.220312625",
      "contrast": "1.979687375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-01/PM25/+1",
      "start_pst": "2025-04-01T01:00:00",
      "end_pst": "2025-04-02T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.2208333333333333333333333333333333333333333333333",
      "contrast": "1.9791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-01/PM25/+1",
      "start_pst": "2025-04-01T01:00:00",
      "end_pst": "2025-04-02T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-01/NO2/+1",
      "start_pst": "2025-04-01T01:00:00",
      "end_pst": "2025-04-02T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-01/NO2/+1",
      "start_pst": "2025-04-01T01:00:00",
      "end_pst": "2025-04-02T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "38.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "38.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-01/NO2/+1",
      "start_pst": "2025-04-01T01:00:00",
      "end_pst": "2025-04-02T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "38.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "38.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-01/NO2/+1",
      "start_pst": "2025-04-01T01:00:00",
      "end_pst": "2025-04-02T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/1/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.7717165833333333333333333333333333333333333333333",
      "contrast": "2.1282834166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-02/PM25/-1",
      "start_pst": "2025-04-01T23:00:00",
      "end_pst": "2025-04-02T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.7791666666666666666666666666666666666666666666667",
      "contrast": "2.1208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-02/PM25/-1",
      "start_pst": "2025-04-01T23:00:00",
      "end_pst": "2025-04-02T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-02/NO2/-1",
      "start_pst": "2025-04-01T23:00:00",
      "end_pst": "2025-04-02T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-02/NO2/-1",
      "start_pst": "2025-04-01T23:00:00",
      "end_pst": "2025-04-02T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "35.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "35.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-02/NO2/-1",
      "start_pst": "2025-04-01T23:00:00",
      "end_pst": "2025-04-02T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "35.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "35.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-02/NO2/-1",
      "start_pst": "2025-04-01T23:00:00",
      "end_pst": "2025-04-02T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.85067145",
      "contrast": "2.04932855",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-02/PM25/+0",
      "start_pst": "2025-04-02T00:00:00",
      "end_pst": "2025-04-03T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.8583333333333333333333333333333333333333333333333",
      "contrast": "2.0416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-02/PM25/+0",
      "start_pst": "2025-04-02T00:00:00",
      "end_pst": "2025-04-03T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-02/NO2/+0",
      "start_pst": "2025-04-02T00:00:00",
      "end_pst": "2025-04-03T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-02/NO2/+0",
      "start_pst": "2025-04-02T00:00:00",
      "end_pst": "2025-04-03T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "35.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "35.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-02/NO2/+0",
      "start_pst": "2025-04-02T00:00:00",
      "end_pst": "2025-04-03T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "35.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "35.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-02/NO2/+0",
      "start_pst": "2025-04-02T00:00:00",
      "end_pst": "2025-04-03T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.8857429541666666666666666666666666666666666666667",
      "contrast": "2.0142570458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-02/PM25/+1",
      "start_pst": "2025-04-02T01:00:00",
      "end_pst": "2025-04-03T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.8958333333333333333333333333333333333333333333333",
      "contrast": "2.0041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-02/PM25/+1",
      "start_pst": "2025-04-02T01:00:00",
      "end_pst": "2025-04-03T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-02/NO2/+1",
      "start_pst": "2025-04-02T01:00:00",
      "end_pst": "2025-04-03T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-02/NO2/+1",
      "start_pst": "2025-04-02T01:00:00",
      "end_pst": "2025-04-03T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "35.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "35.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-02/NO2/+1",
      "start_pst": "2025-04-02T01:00:00",
      "end_pst": "2025-04-03T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "35.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "35.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-04-02/NO2/+1",
      "start_pst": "2025-04-02T01:00:00",
      "end_pst": "2025-04-03T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/2/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "4.4177522421052631578947368421052631578947368421053",
      "contrast": "0.9822477578947368421052631578947368421052631578947",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/PM25/-1",
      "start_pst": "2025-04-02T23:00:00",
      "end_pst": "2025-04-03T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "4.4210526315789473684210526315789473684210526315789",
      "contrast": "0.9789473684210526315789473684210526315789473684211",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/PM25/-1",
      "start_pst": "2025-04-02T23:00:00",
      "end_pst": "2025-04-03T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.6277797739130434782608695652173913043478260869565",
      "contrast": "2.2722202260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/NO2/-1",
      "start_pst": "2025-04-02T23:00:00",
      "end_pst": "2025-04-03T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.6347826086956521739130434782608695652173913043478",
      "contrast": "2.2652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/NO2/-1",
      "start_pst": "2025-04-02T23:00:00",
      "end_pst": "2025-04-03T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "8.7618437",
      "contrast": "4.9381563",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/NO2/-1",
      "start_pst": "2025-04-02T23:00:00",
      "end_pst": "2025-04-03T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "8.8",
      "contrast": "4.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/NO2/-1",
      "start_pst": "2025-04-02T23:00:00",
      "end_pst": "2025-04-03T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "4.2984269315789473684210526315789473684210526315789",
      "contrast": "1.1015730684210526315789473684210526315789473684211",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/PM25/+0",
      "start_pst": "2025-04-03T00:00:00",
      "end_pst": "2025-04-04T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "4.3",
      "contrast": "1.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/PM25/+0",
      "start_pst": "2025-04-03T00:00:00",
      "end_pst": "2025-04-04T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.6553698608695652173913043478260869565217391304348",
      "contrast": "2.2446301391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/NO2/+0",
      "start_pst": "2025-04-03T00:00:00",
      "end_pst": "2025-04-04T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.6608695652173913043478260869565217391304347826087",
      "contrast": "2.2391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/NO2/+0",
      "start_pst": "2025-04-03T00:00:00",
      "end_pst": "2025-04-04T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "8.7618437",
      "contrast": "4.9381563",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/NO2/+0",
      "start_pst": "2025-04-03T00:00:00",
      "end_pst": "2025-04-04T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "8.8",
      "contrast": "4.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/NO2/+0",
      "start_pst": "2025-04-03T00:00:00",
      "end_pst": "2025-04-04T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "4.1973079789473684210526315789473684210526315789474",
      "contrast": "1.2026920210526315789473684210526315789473684210526",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/PM25/+1",
      "start_pst": "2025-04-03T01:00:00",
      "end_pst": "2025-04-04T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "4.2",
      "contrast": "1.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/PM25/+1",
      "start_pst": "2025-04-03T01:00:00",
      "end_pst": "2025-04-04T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.6867280347826086956521739130434782608695652173913",
      "contrast": "2.2132719652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/NO2/+1",
      "start_pst": "2025-04-03T01:00:00",
      "end_pst": "2025-04-04T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.6913043478260869565217391304347826086956521739130",
      "contrast": "2.2086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/NO2/+1",
      "start_pst": "2025-04-03T01:00:00",
      "end_pst": "2025-04-04T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "8.7618437",
      "contrast": "4.9381563",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/NO2/+1",
      "start_pst": "2025-04-03T01:00:00",
      "end_pst": "2025-04-04T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "8.8",
      "contrast": "4.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-03/NO2/+1",
      "start_pst": "2025-04-03T01:00:00",
      "end_pst": "2025-04-04T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/3/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "3.6531842875",
      "contrast": "3.3468157125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/PM25/-1",
      "start_pst": "2025-04-03T23:00:00",
      "end_pst": "2025-04-04T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "3.65",
      "contrast": "3.35",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/PM25/-1",
      "start_pst": "2025-04-03T23:00:00",
      "end_pst": "2025-04-04T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.4140106173913043478260869565217391304347826086957",
      "contrast": "2.0859893826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/NO2/-1",
      "start_pst": "2025-04-03T23:00:00",
      "end_pst": "2025-04-04T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.4086956521739130434782608695652173913043478260870",
      "contrast": "2.0913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/NO2/-1",
      "start_pst": "2025-04-03T23:00:00",
      "end_pst": "2025-04-04T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "12.0131693",
      "contrast": "-1.3131693",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/NO2/-1",
      "start_pst": "2025-04-03T23:00:00",
      "end_pst": "2025-04-04T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "12",
      "contrast": "-1.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/NO2/-1",
      "start_pst": "2025-04-03T23:00:00",
      "end_pst": "2025-04-04T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "3.7930566583333333333333333333333333333333333333333",
      "contrast": "3.2069433416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/PM25/+0",
      "start_pst": "2025-04-04T00:00:00",
      "end_pst": "2025-04-05T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "3.7916666666666666666666666666666666666666666666667",
      "contrast": "3.2083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/PM25/+0",
      "start_pst": "2025-04-04T00:00:00",
      "end_pst": "2025-04-05T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.4378426173913043478260869565217391304347826086957",
      "contrast": "2.0621573826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/NO2/+0",
      "start_pst": "2025-04-04T00:00:00",
      "end_pst": "2025-04-05T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.4347826086956521739130434782608695652173913043478",
      "contrast": "2.0652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/NO2/+0",
      "start_pst": "2025-04-04T00:00:00",
      "end_pst": "2025-04-05T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "12.0131693",
      "contrast": "-1.3131693",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/NO2/+0",
      "start_pst": "2025-04-04T00:00:00",
      "end_pst": "2025-04-05T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "12",
      "contrast": "-1.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/NO2/+0",
      "start_pst": "2025-04-04T00:00:00",
      "end_pst": "2025-04-05T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "3.9215677791666666666666666666666666666666666666667",
      "contrast": "3.0784322208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/PM25/+1",
      "start_pst": "2025-04-04T01:00:00",
      "end_pst": "2025-04-05T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "3.9166666666666666666666666666666666666666666666667",
      "contrast": "3.0833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/PM25/+1",
      "start_pst": "2025-04-04T01:00:00",
      "end_pst": "2025-04-05T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.5507907",
      "contrast": "1.9492093",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/NO2/+1",
      "start_pst": "2025-04-04T01:00:00",
      "end_pst": "2025-04-05T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.5478260869565217391304347826086956521739130434783",
      "contrast": "1.9521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/NO2/+1",
      "start_pst": "2025-04-04T01:00:00",
      "end_pst": "2025-04-05T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "12.0131693",
      "contrast": "-1.3131693",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/NO2/+1",
      "start_pst": "2025-04-04T01:00:00",
      "end_pst": "2025-04-05T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "12",
      "contrast": "-1.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-04/NO2/+1",
      "start_pst": "2025-04-04T01:00:00",
      "end_pst": "2025-04-05T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/4/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "3.8063167958333333333333333333333333333333333333333",
      "contrast": "2.5936832041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/PM25/-1",
      "start_pst": "2025-04-04T23:00:00",
      "end_pst": "2025-04-05T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "3.7958333333333333333333333333333333333333333333333",
      "contrast": "2.6041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/PM25/-1",
      "start_pst": "2025-04-04T23:00:00",
      "end_pst": "2025-04-05T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.2636177652173913043478260869565217391304347826087",
      "contrast": "3.1363822347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/NO2/-1",
      "start_pst": "2025-04-04T23:00:00",
      "end_pst": "2025-04-05T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.2652173913043478260869565217391304347826086956522",
      "contrast": "3.1347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/NO2/-1",
      "start_pst": "2025-04-04T23:00:00",
      "end_pst": "2025-04-05T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "10.6434698",
      "contrast": "5.3565302",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/NO2/-1",
      "start_pst": "2025-04-04T23:00:00",
      "end_pst": "2025-04-05T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "10.6",
      "contrast": "5.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/NO2/-1",
      "start_pst": "2025-04-04T23:00:00",
      "end_pst": "2025-04-05T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "3.886077425",
      "contrast": "2.513922575",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/PM25/+0",
      "start_pst": "2025-04-05T00:00:00",
      "end_pst": "2025-04-06T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "3.875",
      "contrast": "2.525",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/PM25/+0",
      "start_pst": "2025-04-05T00:00:00",
      "end_pst": "2025-04-06T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.2737453304347826086956521739130434782608695652174",
      "contrast": "3.1262546695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/NO2/+0",
      "start_pst": "2025-04-05T00:00:00",
      "end_pst": "2025-04-06T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.2739130434782608695652173913043478260869565217391",
      "contrast": "3.1260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/NO2/+0",
      "start_pst": "2025-04-05T00:00:00",
      "end_pst": "2025-04-06T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "10.6434698",
      "contrast": "5.3565302",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/NO2/+0",
      "start_pst": "2025-04-05T00:00:00",
      "end_pst": "2025-04-06T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "10.6",
      "contrast": "5.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/NO2/+0",
      "start_pst": "2025-04-05T00:00:00",
      "end_pst": "2025-04-06T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "3.8769044291666666666666666666666666666666666666667",
      "contrast": "2.5230955708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/PM25/+1",
      "start_pst": "2025-04-05T01:00:00",
      "end_pst": "2025-04-06T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "3.8666666666666666666666666666666666666666666666667",
      "contrast": "2.5333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/PM25/+1",
      "start_pst": "2025-04-05T01:00:00",
      "end_pst": "2025-04-06T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.1562642869565217391304347826086956521739130434783",
      "contrast": "3.2437357130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/NO2/+1",
      "start_pst": "2025-04-05T01:00:00",
      "end_pst": "2025-04-06T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.1565217391304347826086956521739130434782608695652",
      "contrast": "3.2434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/NO2/+1",
      "start_pst": "2025-04-05T01:00:00",
      "end_pst": "2025-04-06T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "10.6434698",
      "contrast": "5.3565302",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/NO2/+1",
      "start_pst": "2025-04-05T01:00:00",
      "end_pst": "2025-04-06T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "10.6",
      "contrast": "5.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-05/NO2/+1",
      "start_pst": "2025-04-05T01:00:00",
      "end_pst": "2025-04-06T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/5/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.3001788166666666666666666666666666666666666666667",
      "contrast": "2.6998211833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/PM25/-1",
      "start_pst": "2025-04-05T23:00:00",
      "end_pst": "2025-04-06T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.3",
      "contrast": "2.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/PM25/-1",
      "start_pst": "2025-04-05T23:00:00",
      "end_pst": "2025-04-06T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "3.0279514478260869565217391304347826086956521739130",
      "contrast": "10.972048552173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/NO2/-1",
      "start_pst": "2025-04-05T23:00:00",
      "end_pst": "2025-04-06T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "3.0260869565217391304347826086956521739130434782609",
      "contrast": "10.973913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/NO2/-1",
      "start_pst": "2025-04-05T23:00:00",
      "end_pst": "2025-04-06T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "37.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "37.2",
      "town": "7.649827",
      "contrast": "29.550173",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/NO2/-1",
      "start_pst": "2025-04-05T23:00:00",
      "end_pst": "2025-04-06T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "37.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "37.2",
      "town": "7.6",
      "contrast": "29.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/NO2/-1",
      "start_pst": "2025-04-05T23:00:00",
      "end_pst": "2025-04-06T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.0080347333333333333333333333333333333333333333333",
      "contrast": "2.9919652666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/PM25/+0",
      "start_pst": "2025-04-06T00:00:00",
      "end_pst": "2025-04-07T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.0083333333333333333333333333333333333333333333333",
      "contrast": "2.9916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/PM25/+0",
      "start_pst": "2025-04-06T00:00:00",
      "end_pst": "2025-04-07T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "2.9723069695652173913043478260869565217391304347826",
      "contrast": "11.027693030434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/NO2/+0",
      "start_pst": "2025-04-06T00:00:00",
      "end_pst": "2025-04-07T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "2.9695652173913043478260869565217391304347826086957",
      "contrast": "11.030434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/NO2/+0",
      "start_pst": "2025-04-06T00:00:00",
      "end_pst": "2025-04-07T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "37.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "37.2",
      "town": "7.649827",
      "contrast": "29.550173",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/NO2/+0",
      "start_pst": "2025-04-06T00:00:00",
      "end_pst": "2025-04-07T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "37.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "37.2",
      "town": "7.6",
      "contrast": "29.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/NO2/+0",
      "start_pst": "2025-04-06T00:00:00",
      "end_pst": "2025-04-07T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.8566686541666666666666666666666666666666666666667",
      "contrast": "3.1433313458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/PM25/+1",
      "start_pst": "2025-04-06T01:00:00",
      "end_pst": "2025-04-07T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.8583333333333333333333333333333333333333333333333",
      "contrast": "3.1416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/PM25/+1",
      "start_pst": "2025-04-06T01:00:00",
      "end_pst": "2025-04-07T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "3.0172338391304347826086956521739130434782608695652",
      "contrast": "10.982766160869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/NO2/+1",
      "start_pst": "2025-04-06T01:00:00",
      "end_pst": "2025-04-07T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "3.0130434782608695652173913043478260869565217391304",
      "contrast": "10.986956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/NO2/+1",
      "start_pst": "2025-04-06T01:00:00",
      "end_pst": "2025-04-07T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "37.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "37.2",
      "town": "7.649827",
      "contrast": "29.550173",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/NO2/+1",
      "start_pst": "2025-04-06T01:00:00",
      "end_pst": "2025-04-07T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "37.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "37.2",
      "town": "7.6",
      "contrast": "29.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-06/NO2/+1",
      "start_pst": "2025-04-06T01:00:00",
      "end_pst": "2025-04-07T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/6/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.6817376833333333333333333333333333333333333333333",
      "contrast": "2.0182623166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/PM25/-1",
      "start_pst": "2025-04-06T23:00:00",
      "end_pst": "2025-04-07T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.6791666666666666666666666666666666666666666666667",
      "contrast": "2.0208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/PM25/-1",
      "start_pst": "2025-04-06T23:00:00",
      "end_pst": "2025-04-07T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "6.3043024565217391304347826086956521739130434782609",
      "contrast": "6.1956975434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/NO2/-1",
      "start_pst": "2025-04-06T23:00:00",
      "end_pst": "2025-04-07T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "6.3",
      "contrast": "6.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/NO2/-1",
      "start_pst": "2025-04-06T23:00:00",
      "end_pst": "2025-04-07T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.7",
      "town": "10.2094479",
      "contrast": "19.4905521",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/NO2/-1",
      "start_pst": "2025-04-06T23:00:00",
      "end_pst": "2025-04-07T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.7",
      "town": "10.2",
      "contrast": "19.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/NO2/-1",
      "start_pst": "2025-04-06T23:00:00",
      "end_pst": "2025-04-07T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.7741505583333333333333333333333333333333333333333",
      "contrast": "1.9258494416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/PM25/+0",
      "start_pst": "2025-04-07T00:00:00",
      "end_pst": "2025-04-08T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.7708333333333333333333333333333333333333333333333",
      "contrast": "1.9291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/PM25/+0",
      "start_pst": "2025-04-07T00:00:00",
      "end_pst": "2025-04-08T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "6.2922286782608695652173913043478260869565217391304",
      "contrast": "6.2077713217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/NO2/+0",
      "start_pst": "2025-04-07T00:00:00",
      "end_pst": "2025-04-08T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "6.2913043478260869565217391304347826086956521739130",
      "contrast": "6.2086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/NO2/+0",
      "start_pst": "2025-04-07T00:00:00",
      "end_pst": "2025-04-08T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.7",
      "town": "10.2094479",
      "contrast": "19.4905521",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/NO2/+0",
      "start_pst": "2025-04-07T00:00:00",
      "end_pst": "2025-04-08T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.7",
      "town": "10.2",
      "contrast": "19.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/NO2/+0",
      "start_pst": "2025-04-07T00:00:00",
      "end_pst": "2025-04-08T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.8450257208333333333333333333333333333333333333333",
      "contrast": "1.8549742791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/PM25/+1",
      "start_pst": "2025-04-07T01:00:00",
      "end_pst": "2025-04-08T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.8416666666666666666666666666666666666666666666667",
      "contrast": "1.8583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/PM25/+1",
      "start_pst": "2025-04-07T01:00:00",
      "end_pst": "2025-04-08T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "6.2551767652173913043478260869565217391304347826087",
      "contrast": "6.2448232347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/NO2/+1",
      "start_pst": "2025-04-07T01:00:00",
      "end_pst": "2025-04-08T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "6.2565217391304347826086956521739130434782608695652",
      "contrast": "6.2434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/NO2/+1",
      "start_pst": "2025-04-07T01:00:00",
      "end_pst": "2025-04-08T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.7",
      "town": "10.2094479",
      "contrast": "19.4905521",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/NO2/+1",
      "start_pst": "2025-04-07T01:00:00",
      "end_pst": "2025-04-08T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.7",
      "town": "10.2",
      "contrast": "19.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-07/NO2/+1",
      "start_pst": "2025-04-07T01:00:00",
      "end_pst": "2025-04-08T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/7/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.5",
      "town": "2.9380440875",
      "contrast": "0.5619559125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/PM25/-1",
      "start_pst": "2025-04-07T23:00:00",
      "end_pst": "2025-04-08T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.5",
      "town": "2.9458333333333333333333333333333333333333333333333",
      "contrast": "0.5541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/PM25/-1",
      "start_pst": "2025-04-07T23:00:00",
      "end_pst": "2025-04-08T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "5.9334204173913043478260869565217391304347826086957",
      "contrast": "7.5665795826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/NO2/-1",
      "start_pst": "2025-04-07T23:00:00",
      "end_pst": "2025-04-08T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "5.9347826086956521739130434782608695652173913043478",
      "contrast": "7.5652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/NO2/-1",
      "start_pst": "2025-04-07T23:00:00",
      "end_pst": "2025-04-08T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.5",
      "town": "11.9674473",
      "contrast": "16.5325527",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/NO2/-1",
      "start_pst": "2025-04-07T23:00:00",
      "end_pst": "2025-04-08T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.5",
      "town": "12",
      "contrast": "16.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/NO2/-1",
      "start_pst": "2025-04-07T23:00:00",
      "end_pst": "2025-04-08T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.5",
      "town": "2.8254274625",
      "contrast": "0.6745725375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/PM25/+0",
      "start_pst": "2025-04-08T00:00:00",
      "end_pst": "2025-04-09T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.5",
      "town": "2.8333333333333333333333333333333333333333333333333",
      "contrast": "0.6666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/PM25/+0",
      "start_pst": "2025-04-08T00:00:00",
      "end_pst": "2025-04-09T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "5.9082436739130434782608695652173913043478260869565",
      "contrast": "7.5917563260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/NO2/+0",
      "start_pst": "2025-04-08T00:00:00",
      "end_pst": "2025-04-09T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "5.9086956521739130434782608695652173913043478260870",
      "contrast": "7.5913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/NO2/+0",
      "start_pst": "2025-04-08T00:00:00",
      "end_pst": "2025-04-09T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.5",
      "town": "11.9674473",
      "contrast": "16.5325527",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/NO2/+0",
      "start_pst": "2025-04-08T00:00:00",
      "end_pst": "2025-04-09T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.5",
      "town": "12",
      "contrast": "16.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/NO2/+0",
      "start_pst": "2025-04-08T00:00:00",
      "end_pst": "2025-04-09T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.5",
      "town": "2.7285316708333333333333333333333333333333333333333",
      "contrast": "0.7714683291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/PM25/+1",
      "start_pst": "2025-04-08T01:00:00",
      "end_pst": "2025-04-09T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.5",
      "town": "2.7375",
      "contrast": "0.7625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/PM25/+1",
      "start_pst": "2025-04-08T01:00:00",
      "end_pst": "2025-04-09T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "5.8750887173913043478260869565217391304347826086957",
      "contrast": "7.6249112826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/NO2/+1",
      "start_pst": "2025-04-08T01:00:00",
      "end_pst": "2025-04-09T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "5.8739130434782608695652173913043478260869565217391",
      "contrast": "7.6260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/NO2/+1",
      "start_pst": "2025-04-08T01:00:00",
      "end_pst": "2025-04-09T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.5",
      "town": "11.9674473",
      "contrast": "16.5325527",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/NO2/+1",
      "start_pst": "2025-04-08T01:00:00",
      "end_pst": "2025-04-09T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.5",
      "town": "12",
      "contrast": "16.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-08/NO2/+1",
      "start_pst": "2025-04-08T01:00:00",
      "end_pst": "2025-04-09T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/8/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.6553229416666666666666666666666666666666666666667",
      "contrast": "1.5446770583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/PM25/-1",
      "start_pst": "2025-04-08T23:00:00",
      "end_pst": "2025-04-09T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.6625",
      "contrast": "1.5375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/PM25/-1",
      "start_pst": "2025-04-08T23:00:00",
      "end_pst": "2025-04-09T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.7552653043478260869565217391304347826086956521739",
      "contrast": "2.1447346956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/NO2/-1",
      "start_pst": "2025-04-08T23:00:00",
      "end_pst": "2025-04-09T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.7565217391304347826086956521739130434782608695652",
      "contrast": "2.1434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/NO2/-1",
      "start_pst": "2025-04-08T23:00:00",
      "end_pst": "2025-04-09T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.0",
      "town": "9.1866684",
      "contrast": "15.8133316",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/NO2/-1",
      "start_pst": "2025-04-08T23:00:00",
      "end_pst": "2025-04-09T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.0",
      "town": "9.2",
      "contrast": "15.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/NO2/-1",
      "start_pst": "2025-04-08T23:00:00",
      "end_pst": "2025-04-09T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.6982467375",
      "contrast": "1.5017532625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/PM25/+0",
      "start_pst": "2025-04-09T00:00:00",
      "end_pst": "2025-04-10T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.7041666666666666666666666666666666666666666666667",
      "contrast": "1.4958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/PM25/+0",
      "start_pst": "2025-04-09T00:00:00",
      "end_pst": "2025-04-10T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.6951850",
      "contrast": "2.2048150",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/NO2/+0",
      "start_pst": "2025-04-09T00:00:00",
      "end_pst": "2025-04-10T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.6956521739130434782608695652173913043478260869565",
      "contrast": "2.2043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/NO2/+0",
      "start_pst": "2025-04-09T00:00:00",
      "end_pst": "2025-04-10T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.0",
      "town": "9.1866684",
      "contrast": "15.8133316",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/NO2/+0",
      "start_pst": "2025-04-09T00:00:00",
      "end_pst": "2025-04-10T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.0",
      "town": "9.2",
      "contrast": "15.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/NO2/+0",
      "start_pst": "2025-04-09T00:00:00",
      "end_pst": "2025-04-10T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.7188259875",
      "contrast": "1.4811740125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/PM25/+1",
      "start_pst": "2025-04-09T01:00:00",
      "end_pst": "2025-04-10T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "2.725",
      "contrast": "1.475",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/PM25/+1",
      "start_pst": "2025-04-09T01:00:00",
      "end_pst": "2025-04-10T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.6528464782608695652173913043478260869565217391304",
      "contrast": "2.2471535217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/NO2/+1",
      "start_pst": "2025-04-09T01:00:00",
      "end_pst": "2025-04-10T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.6565217391304347826086956521739130434782608695652",
      "contrast": "2.2434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/NO2/+1",
      "start_pst": "2025-04-09T01:00:00",
      "end_pst": "2025-04-10T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.0",
      "town": "9.1866684",
      "contrast": "15.8133316",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/NO2/+1",
      "start_pst": "2025-04-09T01:00:00",
      "end_pst": "2025-04-10T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.0",
      "town": "9.2",
      "contrast": "15.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-09/NO2/+1",
      "start_pst": "2025-04-09T01:00:00",
      "end_pst": "2025-04-10T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/9/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "2.2072163458333333333333333333333333333333333333333",
      "contrast": "2.3927836541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/PM25/-1",
      "start_pst": "2025-04-09T23:00:00",
      "end_pst": "2025-04-10T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "2.2041666666666666666666666666666666666666666666667",
      "contrast": "2.3958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/PM25/-1",
      "start_pst": "2025-04-09T23:00:00",
      "end_pst": "2025-04-10T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.7565306608695652173913043478260869565217391304348",
      "contrast": "6.1434693391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/NO2/-1",
      "start_pst": "2025-04-09T23:00:00",
      "end_pst": "2025-04-10T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.7521739130434782608695652173913043478260869565217",
      "contrast": "6.1478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/NO2/-1",
      "start_pst": "2025-04-09T23:00:00",
      "end_pst": "2025-04-10T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.6",
      "town": "8.5189562",
      "contrast": "13.0810438",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/NO2/-1",
      "start_pst": "2025-04-09T23:00:00",
      "end_pst": "2025-04-10T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.6",
      "town": "8.5",
      "contrast": "13.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/NO2/-1",
      "start_pst": "2025-04-09T23:00:00",
      "end_pst": "2025-04-10T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "2.2380398416666666666666666666666666666666666666667",
      "contrast": "2.3619601583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/PM25/+0",
      "start_pst": "2025-04-10T00:00:00",
      "end_pst": "2025-04-11T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "2.2375",
      "contrast": "2.3625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/PM25/+0",
      "start_pst": "2025-04-10T00:00:00",
      "end_pst": "2025-04-11T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.8031122652173913043478260869565217391304347826087",
      "contrast": "6.0968877347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/NO2/+0",
      "start_pst": "2025-04-10T00:00:00",
      "end_pst": "2025-04-11T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.8",
      "contrast": "6.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/NO2/+0",
      "start_pst": "2025-04-10T00:00:00",
      "end_pst": "2025-04-11T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.6",
      "town": "8.5189562",
      "contrast": "13.0810438",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/NO2/+0",
      "start_pst": "2025-04-10T00:00:00",
      "end_pst": "2025-04-11T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.6",
      "town": "8.5",
      "contrast": "13.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/NO2/+0",
      "start_pst": "2025-04-10T00:00:00",
      "end_pst": "2025-04-11T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "2.2610955083333333333333333333333333333333333333333",
      "contrast": "2.3389044916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/PM25/+1",
      "start_pst": "2025-04-10T01:00:00",
      "end_pst": "2025-04-11T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "2.2583333333333333333333333333333333333333333333333",
      "contrast": "2.3416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/PM25/+1",
      "start_pst": "2025-04-10T01:00:00",
      "end_pst": "2025-04-11T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.8319266130434782608695652173913043478260869565217",
      "contrast": "6.0680733869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/NO2/+1",
      "start_pst": "2025-04-10T01:00:00",
      "end_pst": "2025-04-11T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.8260869565217391304347826086956521739130434782609",
      "contrast": "6.0739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/NO2/+1",
      "start_pst": "2025-04-10T01:00:00",
      "end_pst": "2025-04-11T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.6",
      "town": "8.5189562",
      "contrast": "13.0810438",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/NO2/+1",
      "start_pst": "2025-04-10T01:00:00",
      "end_pst": "2025-04-11T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.6",
      "town": "8.5",
      "contrast": "13.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-10/NO2/+1",
      "start_pst": "2025-04-10T01:00:00",
      "end_pst": "2025-04-11T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/10/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "4.5895046791666666666666666666666666666666666666667",
      "contrast": "0.3104953208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/PM25/-1",
      "start_pst": "2025-04-10T23:00:00",
      "end_pst": "2025-04-11T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "4.5916666666666666666666666666666666666666666666667",
      "contrast": "0.3083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/PM25/-1",
      "start_pst": "2025-04-10T23:00:00",
      "end_pst": "2025-04-11T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.8129974173913043478260869565217391304347826086957",
      "contrast": "3.2870025826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/NO2/-1",
      "start_pst": "2025-04-10T23:00:00",
      "end_pst": "2025-04-11T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.8043478260869565217391304347826086956521739130435",
      "contrast": "3.2956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/NO2/-1",
      "start_pst": "2025-04-10T23:00:00",
      "end_pst": "2025-04-11T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.4",
      "town": "6.8481851",
      "contrast": "8.5518149",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/NO2/-1",
      "start_pst": "2025-04-10T23:00:00",
      "end_pst": "2025-04-11T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.4",
      "town": "6.8",
      "contrast": "8.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/NO2/-1",
      "start_pst": "2025-04-10T23:00:00",
      "end_pst": "2025-04-11T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "4.766416225",
      "contrast": "0.133583775",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/PM25/+0",
      "start_pst": "2025-04-11T00:00:00",
      "end_pst": "2025-04-12T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "4.7666666666666666666666666666666666666666666666667",
      "contrast": "0.1333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/PM25/+0",
      "start_pst": "2025-04-11T00:00:00",
      "end_pst": "2025-04-12T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.9016193782608695652173913043478260869565217391304",
      "contrast": "3.1983806217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/NO2/+0",
      "start_pst": "2025-04-11T00:00:00",
      "end_pst": "2025-04-12T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.8913043478260869565217391304347826086956521739130",
      "contrast": "3.2086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/NO2/+0",
      "start_pst": "2025-04-11T00:00:00",
      "end_pst": "2025-04-12T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.4",
      "town": "6.8481851",
      "contrast": "8.5518149",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/NO2/+0",
      "start_pst": "2025-04-11T00:00:00",
      "end_pst": "2025-04-12T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.4",
      "town": "6.8",
      "contrast": "8.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/NO2/+0",
      "start_pst": "2025-04-11T00:00:00",
      "end_pst": "2025-04-12T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "4.9704055916666666666666666666666666666666666666667",
      "contrast": "-0.0704055916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/PM25/+1",
      "start_pst": "2025-04-11T01:00:00",
      "end_pst": "2025-04-12T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "4.9708333333333333333333333333333333333333333333333",
      "contrast": "-0.0708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/PM25/+1",
      "start_pst": "2025-04-11T01:00:00",
      "end_pst": "2025-04-12T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.9670745086956521739130434782608695652173913043478",
      "contrast": "3.1329254913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/NO2/+1",
      "start_pst": "2025-04-11T01:00:00",
      "end_pst": "2025-04-12T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.9565217391304347826086956521739130434782608695652",
      "contrast": "3.1434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/NO2/+1",
      "start_pst": "2025-04-11T01:00:00",
      "end_pst": "2025-04-12T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.4",
      "town": "6.8481851",
      "contrast": "8.5518149",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/NO2/+1",
      "start_pst": "2025-04-11T01:00:00",
      "end_pst": "2025-04-12T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.4",
      "town": "6.8",
      "contrast": "8.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-11/NO2/+1",
      "start_pst": "2025-04-11T01:00:00",
      "end_pst": "2025-04-12T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/11/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "5.3214890791666666666666666666666666666666666666667",
      "contrast": "2.7785109208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/PM25/-1",
      "start_pst": "2025-04-11T23:00:00",
      "end_pst": "2025-04-12T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "5.325",
      "contrast": "2.775",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/PM25/-1",
      "start_pst": "2025-04-11T23:00:00",
      "end_pst": "2025-04-12T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.8266913695652173913043478260869565217391304347826",
      "contrast": "2.8733086304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/NO2/-1",
      "start_pst": "2025-04-11T23:00:00",
      "end_pst": "2025-04-12T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.8217391304347826086956521739130434782608695652174",
      "contrast": "2.8782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/NO2/-1",
      "start_pst": "2025-04-11T23:00:00",
      "end_pst": "2025-04-12T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "12.0379143",
      "contrast": "0.8620857",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/NO2/-1",
      "start_pst": "2025-04-11T23:00:00",
      "end_pst": "2025-04-12T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "12",
      "contrast": "0.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/NO2/-1",
      "start_pst": "2025-04-11T23:00:00",
      "end_pst": "2025-04-12T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "5.3467342083333333333333333333333333333333333333333",
      "contrast": "2.7532657916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/PM25/+0",
      "start_pst": "2025-04-12T00:00:00",
      "end_pst": "2025-04-13T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "5.35",
      "contrast": "2.75",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/PM25/+0",
      "start_pst": "2025-04-12T00:00:00",
      "end_pst": "2025-04-13T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.9271211521739130434782608695652173913043478260870",
      "contrast": "2.7728788478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/NO2/+0",
      "start_pst": "2025-04-12T00:00:00",
      "end_pst": "2025-04-13T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.9217391304347826086956521739130434782608695652174",
      "contrast": "2.7782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/NO2/+0",
      "start_pst": "2025-04-12T00:00:00",
      "end_pst": "2025-04-13T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "12.0379143",
      "contrast": "0.8620857",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/NO2/+0",
      "start_pst": "2025-04-12T00:00:00",
      "end_pst": "2025-04-13T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "12",
      "contrast": "0.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/NO2/+0",
      "start_pst": "2025-04-12T00:00:00",
      "end_pst": "2025-04-13T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "5.3750971",
      "contrast": "2.7249029",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/PM25/+1",
      "start_pst": "2025-04-12T01:00:00",
      "end_pst": "2025-04-13T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "5.3791666666666666666666666666666666666666666666667",
      "contrast": "2.7208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/PM25/+1",
      "start_pst": "2025-04-12T01:00:00",
      "end_pst": "2025-04-13T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.9392252391304347826086956521739130434782608695652",
      "contrast": "2.7607747608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/NO2/+1",
      "start_pst": "2025-04-12T01:00:00",
      "end_pst": "2025-04-13T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.9347826086956521739130434782608695652173913043478",
      "contrast": "2.7652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/NO2/+1",
      "start_pst": "2025-04-12T01:00:00",
      "end_pst": "2025-04-13T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "12.0379143",
      "contrast": "0.8620857",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/NO2/+1",
      "start_pst": "2025-04-12T01:00:00",
      "end_pst": "2025-04-13T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "12",
      "contrast": "0.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-12/NO2/+1",
      "start_pst": "2025-04-12T01:00:00",
      "end_pst": "2025-04-13T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/12/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.7537340625",
      "contrast": "3.1462659375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/PM25/-1",
      "start_pst": "2025-04-12T23:00:00",
      "end_pst": "2025-04-13T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.7416666666666666666666666666666666666666666666667",
      "contrast": "3.1583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/PM25/-1",
      "start_pst": "2025-04-12T23:00:00",
      "end_pst": "2025-04-13T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.4257758652173913043478260869565217391304347826087",
      "contrast": "1.7742241347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/NO2/-1",
      "start_pst": "2025-04-12T23:00:00",
      "end_pst": "2025-04-13T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.4347826086956521739130434782608695652173913043478",
      "contrast": "1.7652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/NO2/-1",
      "start_pst": "2025-04-12T23:00:00",
      "end_pst": "2025-04-13T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "10.0704107",
      "contrast": "1.3295893",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/NO2/-1",
      "start_pst": "2025-04-12T23:00:00",
      "end_pst": "2025-04-13T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "10.1",
      "contrast": "1.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/NO2/-1",
      "start_pst": "2025-04-12T23:00:00",
      "end_pst": "2025-04-13T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.7547334708333333333333333333333333333333333333333",
      "contrast": "3.1452665291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/PM25/+0",
      "start_pst": "2025-04-13T00:00:00",
      "end_pst": "2025-04-14T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.7458333333333333333333333333333333333333333333333",
      "contrast": "3.1541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/PM25/+0",
      "start_pst": "2025-04-13T00:00:00",
      "end_pst": "2025-04-14T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.2736441739130434782608695652173913043478260869565",
      "contrast": "1.9263558260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/NO2/+0",
      "start_pst": "2025-04-13T00:00:00",
      "end_pst": "2025-04-14T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.2826086956521739130434782608695652173913043478261",
      "contrast": "1.9173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/NO2/+0",
      "start_pst": "2025-04-13T00:00:00",
      "end_pst": "2025-04-14T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "10.0704107",
      "contrast": "1.3295893",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/NO2/+0",
      "start_pst": "2025-04-13T00:00:00",
      "end_pst": "2025-04-14T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "10.1",
      "contrast": "1.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/NO2/+0",
      "start_pst": "2025-04-13T00:00:00",
      "end_pst": "2025-04-14T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.70405605",
      "contrast": "3.19594395",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/PM25/+1",
      "start_pst": "2025-04-13T01:00:00",
      "end_pst": "2025-04-14T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.6958333333333333333333333333333333333333333333333",
      "contrast": "3.2041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/PM25/+1",
      "start_pst": "2025-04-13T01:00:00",
      "end_pst": "2025-04-14T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.2427208695652173913043478260869565217391304347826",
      "contrast": "1.9572791304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/NO2/+1",
      "start_pst": "2025-04-13T01:00:00",
      "end_pst": "2025-04-14T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.2521739130434782608695652173913043478260869565217",
      "contrast": "1.9478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/NO2/+1",
      "start_pst": "2025-04-13T01:00:00",
      "end_pst": "2025-04-14T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "10.0704107",
      "contrast": "1.3295893",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/NO2/+1",
      "start_pst": "2025-04-13T01:00:00",
      "end_pst": "2025-04-14T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "10.1",
      "contrast": "1.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-13/NO2/+1",
      "start_pst": "2025-04-13T01:00:00",
      "end_pst": "2025-04-14T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/13/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "4.8066632",
      "contrast": "3.7933368",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/PM25/-1",
      "start_pst": "2025-04-13T23:00:00",
      "end_pst": "2025-04-14T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "4.8083333333333333333333333333333333333333333333333",
      "contrast": "3.7916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/PM25/-1",
      "start_pst": "2025-04-13T23:00:00",
      "end_pst": "2025-04-14T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.0997991913043478260869565217391304347826086956522",
      "contrast": "3.8002008086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/NO2/-1",
      "start_pst": "2025-04-13T23:00:00",
      "end_pst": "2025-04-14T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.1",
      "contrast": "3.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/NO2/-1",
      "start_pst": "2025-04-13T23:00:00",
      "end_pst": "2025-04-14T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.0",
      "town": "10.5943613",
      "contrast": "22.4056387",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/NO2/-1",
      "start_pst": "2025-04-13T23:00:00",
      "end_pst": "2025-04-14T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.0",
      "town": "10.6",
      "contrast": "22.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/NO2/-1",
      "start_pst": "2025-04-13T23:00:00",
      "end_pst": "2025-04-14T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "4.7510278666666666666666666666666666666666666666667",
      "contrast": "3.8489721333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/PM25/+0",
      "start_pst": "2025-04-14T00:00:00",
      "end_pst": "2025-04-15T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "4.75",
      "contrast": "3.85",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/PM25/+0",
      "start_pst": "2025-04-14T00:00:00",
      "end_pst": "2025-04-15T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.1190794043478260869565217391304347826086956521739",
      "contrast": "3.7809205956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/NO2/+0",
      "start_pst": "2025-04-14T00:00:00",
      "end_pst": "2025-04-15T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.1217391304347826086956521739130434782608695652174",
      "contrast": "3.7782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/NO2/+0",
      "start_pst": "2025-04-14T00:00:00",
      "end_pst": "2025-04-15T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.0",
      "town": "10.5943613",
      "contrast": "22.4056387",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/NO2/+0",
      "start_pst": "2025-04-14T00:00:00",
      "end_pst": "2025-04-15T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.0",
      "town": "10.6",
      "contrast": "22.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/NO2/+0",
      "start_pst": "2025-04-14T00:00:00",
      "end_pst": "2025-04-15T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "4.6770841125",
      "contrast": "3.9229158875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/PM25/+1",
      "start_pst": "2025-04-14T01:00:00",
      "end_pst": "2025-04-15T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "4.675",
      "contrast": "3.925",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/PM25/+1",
      "start_pst": "2025-04-14T01:00:00",
      "end_pst": "2025-04-15T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.1116396652173913043478260869565217391304347826087",
      "contrast": "3.7883603347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/NO2/+1",
      "start_pst": "2025-04-14T01:00:00",
      "end_pst": "2025-04-15T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.1130434782608695652173913043478260869565217391304",
      "contrast": "3.7869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/NO2/+1",
      "start_pst": "2025-04-14T01:00:00",
      "end_pst": "2025-04-15T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.0",
      "town": "10.5943613",
      "contrast": "22.4056387",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/NO2/+1",
      "start_pst": "2025-04-14T01:00:00",
      "end_pst": "2025-04-15T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.0",
      "town": "10.6",
      "contrast": "22.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-14/NO2/+1",
      "start_pst": "2025-04-14T01:00:00",
      "end_pst": "2025-04-15T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/14/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "4.1366638416666666666666666666666666666666666666667",
      "contrast": "9.3633361583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/PM25/-1",
      "start_pst": "2025-04-14T23:00:00",
      "end_pst": "2025-04-15T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "4.1375",
      "contrast": "9.3625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/PM25/-1",
      "start_pst": "2025-04-14T23:00:00",
      "end_pst": "2025-04-15T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.1398275739130434782608695652173913043478260869565",
      "contrast": "2.8601724260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/NO2/-1",
      "start_pst": "2025-04-14T23:00:00",
      "end_pst": "2025-04-15T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.1391304347826086956521739130434782608695652173913",
      "contrast": "2.8608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/NO2/-1",
      "start_pst": "2025-04-14T23:00:00",
      "end_pst": "2025-04-15T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "7.4233842",
      "contrast": "5.0766158",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/NO2/-1",
      "start_pst": "2025-04-14T23:00:00",
      "end_pst": "2025-04-15T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "7.4",
      "contrast": "5.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/NO2/-1",
      "start_pst": "2025-04-14T23:00:00",
      "end_pst": "2025-04-15T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "4.1181052208333333333333333333333333333333333333333",
      "contrast": "9.3818947791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/PM25/+0",
      "start_pst": "2025-04-15T00:00:00",
      "end_pst": "2025-04-16T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "4.1208333333333333333333333333333333333333333333333",
      "contrast": "9.3791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/PM25/+0",
      "start_pst": "2025-04-15T00:00:00",
      "end_pst": "2025-04-16T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.1744375782608695652173913043478260869565217391304",
      "contrast": "2.8255624217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/NO2/+0",
      "start_pst": "2025-04-15T00:00:00",
      "end_pst": "2025-04-16T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.1695652173913043478260869565217391304347826086957",
      "contrast": "2.8304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/NO2/+0",
      "start_pst": "2025-04-15T00:00:00",
      "end_pst": "2025-04-16T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "7.4233842",
      "contrast": "5.0766158",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/NO2/+0",
      "start_pst": "2025-04-15T00:00:00",
      "end_pst": "2025-04-16T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "7.4",
      "contrast": "5.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/NO2/+0",
      "start_pst": "2025-04-15T00:00:00",
      "end_pst": "2025-04-16T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "4.1967917166666666666666666666666666666666666666667",
      "contrast": "9.3032082833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/PM25/+1",
      "start_pst": "2025-04-15T01:00:00",
      "end_pst": "2025-04-16T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "4.2",
      "contrast": "9.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/PM25/+1",
      "start_pst": "2025-04-15T01:00:00",
      "end_pst": "2025-04-16T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.2367406652173913043478260869565217391304347826087",
      "contrast": "2.7632593347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/NO2/+1",
      "start_pst": "2025-04-15T01:00:00",
      "end_pst": "2025-04-16T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.2304347826086956521739130434782608695652173913043",
      "contrast": "2.7695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/NO2/+1",
      "start_pst": "2025-04-15T01:00:00",
      "end_pst": "2025-04-16T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "7.4233842",
      "contrast": "5.0766158",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/NO2/+1",
      "start_pst": "2025-04-15T01:00:00",
      "end_pst": "2025-04-16T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "7.4",
      "contrast": "5.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-15/NO2/+1",
      "start_pst": "2025-04-15T01:00:00",
      "end_pst": "2025-04-16T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/15/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "3.6755489416666666666666666666666666666666666666667",
      "contrast": "8.4244510583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/PM25/-1",
      "start_pst": "2025-04-15T23:00:00",
      "end_pst": "2025-04-16T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "3.675",
      "contrast": "8.425",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/PM25/-1",
      "start_pst": "2025-04-15T23:00:00",
      "end_pst": "2025-04-16T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "4.2258517826086956521739130434782608695652173913043",
      "contrast": "8.6741482173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/NO2/-1",
      "start_pst": "2025-04-15T23:00:00",
      "end_pst": "2025-04-16T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "4.2304347826086956521739130434782608695652173913043",
      "contrast": "8.6695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/NO2/-1",
      "start_pst": "2025-04-15T23:00:00",
      "end_pst": "2025-04-16T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "38.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "38.2",
      "town": "13.3027916",
      "contrast": "24.8972084",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/NO2/-1",
      "start_pst": "2025-04-15T23:00:00",
      "end_pst": "2025-04-16T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "38.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "38.2",
      "town": "13.3",
      "contrast": "24.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/NO2/-1",
      "start_pst": "2025-04-15T23:00:00",
      "end_pst": "2025-04-16T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "3.8070181916666666666666666666666666666666666666667",
      "contrast": "8.2929818083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/PM25/+0",
      "start_pst": "2025-04-16T00:00:00",
      "end_pst": "2025-04-17T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "3.8041666666666666666666666666666666666666666666667",
      "contrast": "8.2958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/PM25/+0",
      "start_pst": "2025-04-16T00:00:00",
      "end_pst": "2025-04-17T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "4.2519387347826086956521739130434782608695652173913",
      "contrast": "8.6480612652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/NO2/+0",
      "start_pst": "2025-04-16T00:00:00",
      "end_pst": "2025-04-17T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "4.2565217391304347826086956521739130434782608695652",
      "contrast": "8.6434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/NO2/+0",
      "start_pst": "2025-04-16T00:00:00",
      "end_pst": "2025-04-17T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "38.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "38.2",
      "town": "13.3027916",
      "contrast": "24.8972084",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/NO2/+0",
      "start_pst": "2025-04-16T00:00:00",
      "end_pst": "2025-04-17T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "38.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "38.2",
      "town": "13.3",
      "contrast": "24.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/NO2/+0",
      "start_pst": "2025-04-16T00:00:00",
      "end_pst": "2025-04-17T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "3.6981351083333333333333333333333333333333333333333",
      "contrast": "8.4018648916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/PM25/+1",
      "start_pst": "2025-04-16T01:00:00",
      "end_pst": "2025-04-17T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "3.6958333333333333333333333333333333333333333333333",
      "contrast": "8.4041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/PM25/+1",
      "start_pst": "2025-04-16T01:00:00",
      "end_pst": "2025-04-17T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "4.2684399956521739130434782608695652173913043478261",
      "contrast": "8.6315600043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/NO2/+1",
      "start_pst": "2025-04-16T01:00:00",
      "end_pst": "2025-04-17T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.9",
      "town": "4.2739130434782608695652173913043478260869565217391",
      "contrast": "8.6260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/NO2/+1",
      "start_pst": "2025-04-16T01:00:00",
      "end_pst": "2025-04-17T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "38.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "38.2",
      "town": "13.3027916",
      "contrast": "24.8972084",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/NO2/+1",
      "start_pst": "2025-04-16T01:00:00",
      "end_pst": "2025-04-17T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "38.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "38.2",
      "town": "13.3",
      "contrast": "24.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-16/NO2/+1",
      "start_pst": "2025-04-16T01:00:00",
      "end_pst": "2025-04-17T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/16/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.5266851",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-17/PM25/-1",
      "start_pst": "2025-04-16T23:00:00",
      "end_pst": "2025-04-17T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.525",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-17/PM25/-1",
      "start_pst": "2025-04-16T23:00:00",
      "end_pst": "2025-04-17T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.2057199347826086956521739130434782608695652173913",
      "contrast": "1.7942800652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-17/NO2/-1",
      "start_pst": "2025-04-16T23:00:00",
      "end_pst": "2025-04-17T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.1956521739130434782608695652173913043478260869565",
      "contrast": "1.8043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-17/NO2/-1",
      "start_pst": "2025-04-16T23:00:00",
      "end_pst": "2025-04-17T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "13.7933416",
      "contrast": "0.4066584",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-17/NO2/-1",
      "start_pst": "2025-04-16T23:00:00",
      "end_pst": "2025-04-17T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "13.8",
      "contrast": "0.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-17/NO2/-1",
      "start_pst": "2025-04-16T23:00:00",
      "end_pst": "2025-04-17T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.4568774708333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-17/PM25/+0",
      "start_pst": "2025-04-17T00:00:00",
      "end_pst": "2025-04-18T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.4583333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-17/PM25/+0",
      "start_pst": "2025-04-17T00:00:00",
      "end_pst": "2025-04-18T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.2457835434782608695652173913043478260869565217391",
      "contrast": "1.7542164565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-17/NO2/+0",
      "start_pst": "2025-04-17T00:00:00",
      "end_pst": "2025-04-18T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.2391304347826086956521739130434782608695652173913",
      "contrast": "1.7608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-17/NO2/+0",
      "start_pst": "2025-04-17T00:00:00",
      "end_pst": "2025-04-18T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "13.7933416",
      "contrast": "0.4066584",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-17/NO2/+0",
      "start_pst": "2025-04-17T00:00:00",
      "end_pst": "2025-04-18T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "13.8",
      "contrast": "0.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-17/NO2/+0",
      "start_pst": "2025-04-17T00:00:00",
      "end_pst": "2025-04-18T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.5675750208333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-17/PM25/+1",
      "start_pst": "2025-04-17T01:00:00",
      "end_pst": "2025-04-18T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.5666666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-17/PM25/+1",
      "start_pst": "2025-04-17T01:00:00",
      "end_pst": "2025-04-18T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.2295579782608695652173913043478260869565217391304",
      "contrast": "1.7704420217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-17/NO2/+1",
      "start_pst": "2025-04-17T01:00:00",
      "end_pst": "2025-04-18T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.2260869565217391304347826086956521739130434782609",
      "contrast": "1.7739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-17/NO2/+1",
      "start_pst": "2025-04-17T01:00:00",
      "end_pst": "2025-04-18T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "13.7933416",
      "contrast": "0.4066584",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-17/NO2/+1",
      "start_pst": "2025-04-17T01:00:00",
      "end_pst": "2025-04-18T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "13.8",
      "contrast": "0.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-17/NO2/+1",
      "start_pst": "2025-04-17T01:00:00",
      "end_pst": "2025-04-18T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/17/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.0921149541666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-18/PM25/-1",
      "start_pst": "2025-04-17T23:00:00",
      "end_pst": "2025-04-18T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-18/PM25/-1",
      "start_pst": "2025-04-17T23:00:00",
      "end_pst": "2025-04-18T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "4.1171376652173913043478260869565217391304347826087",
      "contrast": "4.8828623347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-18/NO2/-1",
      "start_pst": "2025-04-17T23:00:00",
      "end_pst": "2025-04-18T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "4.1130434782608695652173913043478260869565217391304",
      "contrast": "4.8869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-18/NO2/-1",
      "start_pst": "2025-04-17T23:00:00",
      "end_pst": "2025-04-18T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "5.939518",
      "contrast": "10.460482",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-18/NO2/-1",
      "start_pst": "2025-04-17T23:00:00",
      "end_pst": "2025-04-18T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "5.9",
      "contrast": "10.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-18/NO2/-1",
      "start_pst": "2025-04-17T23:00:00",
      "end_pst": "2025-04-18T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.0298992916666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-18/PM25/+0",
      "start_pst": "2025-04-18T00:00:00",
      "end_pst": "2025-04-19T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.0375",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-18/PM25/+0",
      "start_pst": "2025-04-18T00:00:00",
      "end_pst": "2025-04-19T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "4.0135200608695652173913043478260869565217391304348",
      "contrast": "4.9864799391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-18/NO2/+0",
      "start_pst": "2025-04-18T00:00:00",
      "end_pst": "2025-04-19T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "4.0086956521739130434782608695652173913043478260870",
      "contrast": "4.9913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-18/NO2/+0",
      "start_pst": "2025-04-18T00:00:00",
      "end_pst": "2025-04-19T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "5.939518",
      "contrast": "10.460482",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-18/NO2/+0",
      "start_pst": "2025-04-18T00:00:00",
      "end_pst": "2025-04-19T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "5.9",
      "contrast": "10.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-18/NO2/+0",
      "start_pst": "2025-04-18T00:00:00",
      "end_pst": "2025-04-19T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.9730879166666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-18/PM25/+1",
      "start_pst": "2025-04-18T01:00:00",
      "end_pst": "2025-04-19T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.9833333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-18/PM25/+1",
      "start_pst": "2025-04-18T01:00:00",
      "end_pst": "2025-04-19T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "3.9804899782608695652173913043478260869565217391304",
      "contrast": "5.0195100217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-18/NO2/+1",
      "start_pst": "2025-04-18T01:00:00",
      "end_pst": "2025-04-19T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "3.9739130434782608695652173913043478260869565217391",
      "contrast": "5.0260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-18/NO2/+1",
      "start_pst": "2025-04-18T01:00:00",
      "end_pst": "2025-04-19T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "5.939518",
      "contrast": "10.460482",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-18/NO2/+1",
      "start_pst": "2025-04-18T01:00:00",
      "end_pst": "2025-04-19T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "5.9",
      "contrast": "10.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-18/NO2/+1",
      "start_pst": "2025-04-18T01:00:00",
      "end_pst": "2025-04-19T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/18/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.5116670458333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-19/PM25/-1",
      "start_pst": "2025-04-18T23:00:00",
      "end_pst": "2025-04-19T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.5208333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-19/PM25/-1",
      "start_pst": "2025-04-18T23:00:00",
      "end_pst": "2025-04-19T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "2.6223697130434782608695652173913043478260869565217",
      "contrast": "2.2776302869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-19/NO2/-1",
      "start_pst": "2025-04-18T23:00:00",
      "end_pst": "2025-04-19T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "2.6304347826086956521739130434782608695652173913043",
      "contrast": "2.2695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-19/NO2/-1",
      "start_pst": "2025-04-18T23:00:00",
      "end_pst": "2025-04-19T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "5.4710679",
      "contrast": "5.5289321",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-19/NO2/-1",
      "start_pst": "2025-04-18T23:00:00",
      "end_pst": "2025-04-19T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "5.5",
      "contrast": "5.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-19/NO2/-1",
      "start_pst": "2025-04-18T23:00:00",
      "end_pst": "2025-04-19T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.4444126583333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-19/PM25/+0",
      "start_pst": "2025-04-19T00:00:00",
      "end_pst": "2025-04-20T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.4541666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-19/PM25/+0",
      "start_pst": "2025-04-19T00:00:00",
      "end_pst": "2025-04-20T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "2.5527578391304347826086956521739130434782608695652",
      "contrast": "2.3472421608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-19/NO2/+0",
      "start_pst": "2025-04-19T00:00:00",
      "end_pst": "2025-04-20T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "2.5608695652173913043478260869565217391304347826087",
      "contrast": "2.3391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-19/NO2/+0",
      "start_pst": "2025-04-19T00:00:00",
      "end_pst": "2025-04-20T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "5.4710679",
      "contrast": "5.5289321",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-19/NO2/+0",
      "start_pst": "2025-04-19T00:00:00",
      "end_pst": "2025-04-20T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "5.5",
      "contrast": "5.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-19/NO2/+0",
      "start_pst": "2025-04-19T00:00:00",
      "end_pst": "2025-04-20T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.3826172375",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-19/PM25/+1",
      "start_pst": "2025-04-19T01:00:00",
      "end_pst": "2025-04-20T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.3916666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-19/PM25/+1",
      "start_pst": "2025-04-19T01:00:00",
      "end_pst": "2025-04-20T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "2.5005747478260869565217391304347826086956521739130",
      "contrast": "2.3994252521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-19/NO2/+1",
      "start_pst": "2025-04-19T01:00:00",
      "end_pst": "2025-04-20T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "2.5086956521739130434782608695652173913043478260870",
      "contrast": "2.3913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-19/NO2/+1",
      "start_pst": "2025-04-19T01:00:00",
      "end_pst": "2025-04-20T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "5.4710679",
      "contrast": "5.5289321",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-19/NO2/+1",
      "start_pst": "2025-04-19T01:00:00",
      "end_pst": "2025-04-20T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "5.5",
      "contrast": "5.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-19/NO2/+1",
      "start_pst": "2025-04-19T01:00:00",
      "end_pst": "2025-04-20T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/19/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.6814230458333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-20/PM25/-1",
      "start_pst": "2025-04-19T23:00:00",
      "end_pst": "2025-04-20T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.6791666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-20/PM25/-1",
      "start_pst": "2025-04-19T23:00:00",
      "end_pst": "2025-04-20T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.8979238347826086956521739130434782608695652173913",
      "contrast": "2.2020761652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-20/NO2/-1",
      "start_pst": "2025-04-19T23:00:00",
      "end_pst": "2025-04-20T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.8913043478260869565217391304347826086956521739130",
      "contrast": "2.2086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-20/NO2/-1",
      "start_pst": "2025-04-19T23:00:00",
      "end_pst": "2025-04-20T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "5.934165",
      "contrast": "5.965835",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-20/NO2/-1",
      "start_pst": "2025-04-19T23:00:00",
      "end_pst": "2025-04-20T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "5.9",
      "contrast": "6.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-20/NO2/-1",
      "start_pst": "2025-04-19T23:00:00",
      "end_pst": "2025-04-20T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.667073975",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-20/PM25/+0",
      "start_pst": "2025-04-20T00:00:00",
      "end_pst": "2025-04-21T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.6625",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-20/PM25/+0",
      "start_pst": "2025-04-20T00:00:00",
      "end_pst": "2025-04-21T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.9979800608695652173913043478260869565217391304348",
      "contrast": "2.1020199391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-20/NO2/+0",
      "start_pst": "2025-04-20T00:00:00",
      "end_pst": "2025-04-21T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.9913043478260869565217391304347826086956521739130",
      "contrast": "2.1086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-20/NO2/+0",
      "start_pst": "2025-04-20T00:00:00",
      "end_pst": "2025-04-21T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "5.934165",
      "contrast": "5.965835",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-20/NO2/+0",
      "start_pst": "2025-04-20T00:00:00",
      "end_pst": "2025-04-21T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "5.9",
      "contrast": "6.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-20/NO2/+0",
      "start_pst": "2025-04-20T00:00:00",
      "end_pst": "2025-04-21T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.6931671875",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-20/PM25/+1",
      "start_pst": "2025-04-20T01:00:00",
      "end_pst": "2025-04-21T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.6875",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-20/PM25/+1",
      "start_pst": "2025-04-20T01:00:00",
      "end_pst": "2025-04-21T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "3.0596777086956521739130434782608695652173913043478",
      "contrast": "2.0403222913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-20/NO2/+1",
      "start_pst": "2025-04-20T01:00:00",
      "end_pst": "2025-04-21T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "3.0521739130434782608695652173913043478260869565217",
      "contrast": "2.0478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-20/NO2/+1",
      "start_pst": "2025-04-20T01:00:00",
      "end_pst": "2025-04-21T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "5.934165",
      "contrast": "5.965835",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-20/NO2/+1",
      "start_pst": "2025-04-20T01:00:00",
      "end_pst": "2025-04-21T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "5.9",
      "contrast": "6.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-20/NO2/+1",
      "start_pst": "2025-04-20T01:00:00",
      "end_pst": "2025-04-21T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/20/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.319913325",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-21/PM25/-1",
      "start_pst": "2025-04-20T23:00:00",
      "end_pst": "2025-04-21T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.325",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-21/PM25/-1",
      "start_pst": "2025-04-20T23:00:00",
      "end_pst": "2025-04-21T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.9911505347826086956521739130434782608695652173913",
      "contrast": "3.0088494652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-21/NO2/-1",
      "start_pst": "2025-04-20T23:00:00",
      "end_pst": "2025-04-21T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.9956521739130434782608695652173913043478260869565",
      "contrast": "3.0043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-21/NO2/-1",
      "start_pst": "2025-04-20T23:00:00",
      "end_pst": "2025-04-21T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.181149",
      "contrast": "9.018851",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-21/NO2/-1",
      "start_pst": "2025-04-20T23:00:00",
      "end_pst": "2025-04-21T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.2",
      "contrast": "9.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-21/NO2/-1",
      "start_pst": "2025-04-20T23:00:00",
      "end_pst": "2025-04-21T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.2708356125",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-21/PM25/+0",
      "start_pst": "2025-04-21T00:00:00",
      "end_pst": "2025-04-22T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.275",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-21/PM25/+0",
      "start_pst": "2025-04-21T00:00:00",
      "end_pst": "2025-04-22T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.9526497478260869565217391304347826086956521739130",
      "contrast": "3.0473502521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-21/NO2/+0",
      "start_pst": "2025-04-21T00:00:00",
      "end_pst": "2025-04-22T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.9565217391304347826086956521739130434782608695652",
      "contrast": "3.0434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-21/NO2/+0",
      "start_pst": "2025-04-21T00:00:00",
      "end_pst": "2025-04-22T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.181149",
      "contrast": "9.018851",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-21/NO2/+0",
      "start_pst": "2025-04-21T00:00:00",
      "end_pst": "2025-04-22T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.2",
      "contrast": "9.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-21/NO2/+0",
      "start_pst": "2025-04-21T00:00:00",
      "end_pst": "2025-04-22T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.1731659416666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-21/PM25/+1",
      "start_pst": "2025-04-21T01:00:00",
      "end_pst": "2025-04-22T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.1791666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-04-21/PM25/+1",
      "start_pst": "2025-04-21T01:00:00",
      "end_pst": "2025-04-22T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.9270760590909090909090909090909090909090909090909",
      "contrast": "3.0729239409090909090909090909090909090909090909091",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-21/NO2/+1",
      "start_pst": "2025-04-21T01:00:00",
      "end_pst": "2025-04-22T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.9318181818181818181818181818181818181818181818182",
      "contrast": "3.0681818181818181818181818181818181818181818181818",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-21/NO2/+1",
      "start_pst": "2025-04-21T01:00:00",
      "end_pst": "2025-04-22T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.181149",
      "contrast": "9.018851",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-21/NO2/+1",
      "start_pst": "2025-04-21T01:00:00",
      "end_pst": "2025-04-22T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.2",
      "contrast": "9.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-21/NO2/+1",
      "start_pst": "2025-04-21T01:00:00",
      "end_pst": "2025-04-22T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/21/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "7.2039576090909090909090909090909090909090909090909",
      "contrast": "-2.0039576090909090909090909090909090909090909090909",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/PM25/-1",
      "start_pst": "2025-04-21T23:00:00",
      "end_pst": "2025-04-22T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "7.2090909090909090909090909090909090909090909090909",
      "contrast": "-2.0090909090909090909090909090909090909090909090909",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/PM25/-1",
      "start_pst": "2025-04-21T23:00:00",
      "end_pst": "2025-04-22T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.0131133478260869565217391304347826086956521739130",
      "contrast": "2.7868866521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/NO2/-1",
      "start_pst": "2025-04-21T23:00:00",
      "end_pst": "2025-04-22T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.0130434782608695652173913043478260869565217391304",
      "contrast": "2.7869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/NO2/-1",
      "start_pst": "2025-04-21T23:00:00",
      "end_pst": "2025-04-22T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.4",
      "town": "8.7531738",
      "contrast": "15.6468262",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/NO2/-1",
      "start_pst": "2025-04-21T23:00:00",
      "end_pst": "2025-04-22T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.4",
      "town": "8.8",
      "contrast": "15.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/NO2/-1",
      "start_pst": "2025-04-21T23:00:00",
      "end_pst": "2025-04-22T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "7.6142362",
      "contrast": "-2.4142362",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/PM25/+0",
      "start_pst": "2025-04-22T00:00:00",
      "end_pst": "2025-04-23T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "7.6227272727272727272727272727272727272727272727273",
      "contrast": "-2.4227272727272727272727272727272727272727272727273",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/PM25/+0",
      "start_pst": "2025-04-22T00:00:00",
      "end_pst": "2025-04-23T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.0453964954545454545454545454545454545454545454545",
      "contrast": "2.7546035045454545454545454545454545454545454545455",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/NO2/+0",
      "start_pst": "2025-04-22T00:00:00",
      "end_pst": "2025-04-23T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.0454545454545454545454545454545454545454545454545",
      "contrast": "2.7545454545454545454545454545454545454545454545455",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/NO2/+0",
      "start_pst": "2025-04-22T00:00:00",
      "end_pst": "2025-04-23T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.4",
      "town": "8.7531738",
      "contrast": "15.6468262",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/NO2/+0",
      "start_pst": "2025-04-22T00:00:00",
      "end_pst": "2025-04-23T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.4",
      "town": "8.8",
      "contrast": "15.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/NO2/+0",
      "start_pst": "2025-04-22T00:00:00",
      "end_pst": "2025-04-23T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "8.0281524545454545454545454545454545454545454545455",
      "contrast": "-2.8281524545454545454545454545454545454545454545455",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/PM25/+1",
      "start_pst": "2025-04-22T01:00:00",
      "end_pst": "2025-04-23T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "8.0363636363636363636363636363636363636363636363636",
      "contrast": "-2.8363636363636363636363636363636363636363636363636",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/PM25/+1",
      "start_pst": "2025-04-22T01:00:00",
      "end_pst": "2025-04-23T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.0709289608695652173913043478260869565217391304348",
      "contrast": "2.7290710391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/NO2/+1",
      "start_pst": "2025-04-22T01:00:00",
      "end_pst": "2025-04-23T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.0695652173913043478260869565217391304347826086957",
      "contrast": "2.7304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/NO2/+1",
      "start_pst": "2025-04-22T01:00:00",
      "end_pst": "2025-04-23T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.4",
      "town": "8.7531738",
      "contrast": "15.6468262",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/NO2/+1",
      "start_pst": "2025-04-22T01:00:00",
      "end_pst": "2025-04-23T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.4",
      "town": "8.8",
      "contrast": "15.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-22/NO2/+1",
      "start_pst": "2025-04-22T01:00:00",
      "end_pst": "2025-04-23T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/22/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "6.4118100958333333333333333333333333333333333333333",
      "contrast": "-1.0118100958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/PM25/-1",
      "start_pst": "2025-04-22T23:00:00",
      "end_pst": "2025-04-23T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "6.4208333333333333333333333333333333333333333333333",
      "contrast": "-1.0208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/PM25/-1",
      "start_pst": "2025-04-22T23:00:00",
      "end_pst": "2025-04-23T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.2502448181818181818181818181818181818181818181818",
      "contrast": "1.7497551818181818181818181818181818181818181818182",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/NO2/-1",
      "start_pst": "2025-04-22T23:00:00",
      "end_pst": "2025-04-23T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.25",
      "contrast": "1.75",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/NO2/-1",
      "start_pst": "2025-04-22T23:00:00",
      "end_pst": "2025-04-23T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "10.5144739",
      "contrast": "0.8855261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/NO2/-1",
      "start_pst": "2025-04-22T23:00:00",
      "end_pst": "2025-04-23T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "10.5",
      "contrast": "0.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/NO2/-1",
      "start_pst": "2025-04-22T23:00:00",
      "end_pst": "2025-04-23T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "6.1907829208333333333333333333333333333333333333333",
      "contrast": "-0.7907829208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/PM25/+0",
      "start_pst": "2025-04-23T00:00:00",
      "end_pst": "2025-04-24T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "6.2",
      "contrast": "-0.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/PM25/+0",
      "start_pst": "2025-04-23T00:00:00",
      "end_pst": "2025-04-24T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.2134100913043478260869565217391304347826086956522",
      "contrast": "1.7865899086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/NO2/+0",
      "start_pst": "2025-04-23T00:00:00",
      "end_pst": "2025-04-24T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.2130434782608695652173913043478260869565217391304",
      "contrast": "1.7869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/NO2/+0",
      "start_pst": "2025-04-23T00:00:00",
      "end_pst": "2025-04-24T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "10.5144739",
      "contrast": "0.8855261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/NO2/+0",
      "start_pst": "2025-04-23T00:00:00",
      "end_pst": "2025-04-24T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "10.5",
      "contrast": "0.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/NO2/+0",
      "start_pst": "2025-04-23T00:00:00",
      "end_pst": "2025-04-24T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "5.9867106041666666666666666666666666666666666666667",
      "contrast": "-0.5867106041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/PM25/+1",
      "start_pst": "2025-04-23T01:00:00",
      "end_pst": "2025-04-24T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "5.9958333333333333333333333333333333333333333333333",
      "contrast": "-0.5958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/PM25/+1",
      "start_pst": "2025-04-23T01:00:00",
      "end_pst": "2025-04-24T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.1888582652173913043478260869565217391304347826087",
      "contrast": "1.8111417347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/NO2/+1",
      "start_pst": "2025-04-23T01:00:00",
      "end_pst": "2025-04-24T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.1913043478260869565217391304347826086956521739130",
      "contrast": "1.8086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/NO2/+1",
      "start_pst": "2025-04-23T01:00:00",
      "end_pst": "2025-04-24T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "10.5144739",
      "contrast": "0.8855261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/NO2/+1",
      "start_pst": "2025-04-23T01:00:00",
      "end_pst": "2025-04-24T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "10.5",
      "contrast": "0.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-23/NO2/+1",
      "start_pst": "2025-04-23T01:00:00",
      "end_pst": "2025-04-24T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/23/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "6.3407111375",
      "contrast": "0.6592888625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/PM25/-1",
      "start_pst": "2025-04-23T23:00:00",
      "end_pst": "2025-04-24T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "6.3416666666666666666666666666666666666666666666667",
      "contrast": "0.6583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/PM25/-1",
      "start_pst": "2025-04-23T23:00:00",
      "end_pst": "2025-04-24T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "5.2934188043478260869565217391304347826086956521739",
      "contrast": "4.6065811956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/NO2/-1",
      "start_pst": "2025-04-23T23:00:00",
      "end_pst": "2025-04-24T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "5.2869565217391304347826086956521739130434782608696",
      "contrast": "4.6130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/NO2/-1",
      "start_pst": "2025-04-23T23:00:00",
      "end_pst": "2025-04-24T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "12.3797321",
      "contrast": "4.6202679",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/NO2/-1",
      "start_pst": "2025-04-23T23:00:00",
      "end_pst": "2025-04-24T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "12.4",
      "contrast": "4.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/NO2/-1",
      "start_pst": "2025-04-23T23:00:00",
      "end_pst": "2025-04-24T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "6.4587881",
      "contrast": "0.5412119",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/PM25/+0",
      "start_pst": "2025-04-24T00:00:00",
      "end_pst": "2025-04-25T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "6.4583333333333333333333333333333333333333333333333",
      "contrast": "0.5416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/PM25/+0",
      "start_pst": "2025-04-24T00:00:00",
      "end_pst": "2025-04-25T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "5.2537191043478260869565217391304347826086956521739",
      "contrast": "4.6462808956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/NO2/+0",
      "start_pst": "2025-04-24T00:00:00",
      "end_pst": "2025-04-25T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "5.2478260869565217391304347826086956521739130434783",
      "contrast": "4.6521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/NO2/+0",
      "start_pst": "2025-04-24T00:00:00",
      "end_pst": "2025-04-25T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "12.3797321",
      "contrast": "4.6202679",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/NO2/+0",
      "start_pst": "2025-04-24T00:00:00",
      "end_pst": "2025-04-25T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "12.4",
      "contrast": "4.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/NO2/+0",
      "start_pst": "2025-04-24T00:00:00",
      "end_pst": "2025-04-25T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "6.5527001833333333333333333333333333333333333333333",
      "contrast": "0.4472998166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/PM25/+1",
      "start_pst": "2025-04-24T01:00:00",
      "end_pst": "2025-04-25T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "6.55",
      "contrast": "0.45",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/PM25/+1",
      "start_pst": "2025-04-24T01:00:00",
      "end_pst": "2025-04-25T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "5.2387011391304347826086956521739130434782608695652",
      "contrast": "4.6612988608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/NO2/+1",
      "start_pst": "2025-04-24T01:00:00",
      "end_pst": "2025-04-25T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "5.2304347826086956521739130434782608695652173913043",
      "contrast": "4.6695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/NO2/+1",
      "start_pst": "2025-04-24T01:00:00",
      "end_pst": "2025-04-25T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "12.3797321",
      "contrast": "4.6202679",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/NO2/+1",
      "start_pst": "2025-04-24T01:00:00",
      "end_pst": "2025-04-25T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "12.4",
      "contrast": "4.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-24/NO2/+1",
      "start_pst": "2025-04-24T01:00:00",
      "end_pst": "2025-04-25T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/24/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.8248801458333333333333333333333333333333333333333",
      "contrast": "1.0751198541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/PM25/-1",
      "start_pst": "2025-04-24T23:00:00",
      "end_pst": "2025-04-25T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.8208333333333333333333333333333333333333333333333",
      "contrast": "1.0791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/PM25/-1",
      "start_pst": "2025-04-24T23:00:00",
      "end_pst": "2025-04-25T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "5.3163622304347826086956521739130434782608695652174",
      "contrast": "4.3836377695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/NO2/-1",
      "start_pst": "2025-04-24T23:00:00",
      "end_pst": "2025-04-25T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "5.3217391304347826086956521739130434782608695652174",
      "contrast": "4.3782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/NO2/-1",
      "start_pst": "2025-04-24T23:00:00",
      "end_pst": "2025-04-25T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "12.8848801",
      "contrast": "3.7151199",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/NO2/-1",
      "start_pst": "2025-04-24T23:00:00",
      "end_pst": "2025-04-25T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "12.9",
      "contrast": "3.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/NO2/-1",
      "start_pst": "2025-04-24T23:00:00",
      "end_pst": "2025-04-25T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.9402656375",
      "contrast": "0.9597343625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/PM25/+0",
      "start_pst": "2025-04-25T00:00:00",
      "end_pst": "2025-04-26T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.9375",
      "contrast": "0.9625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/PM25/+0",
      "start_pst": "2025-04-25T00:00:00",
      "end_pst": "2025-04-26T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "5.4682272391304347826086956521739130434782608695652",
      "contrast": "4.2317727608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/NO2/+0",
      "start_pst": "2025-04-25T00:00:00",
      "end_pst": "2025-04-26T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "5.4739130434782608695652173913043478260869565217391",
      "contrast": "4.2260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/NO2/+0",
      "start_pst": "2025-04-25T00:00:00",
      "end_pst": "2025-04-26T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "12.8848801",
      "contrast": "3.7151199",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/NO2/+0",
      "start_pst": "2025-04-25T00:00:00",
      "end_pst": "2025-04-26T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "12.9",
      "contrast": "3.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/NO2/+0",
      "start_pst": "2025-04-25T00:00:00",
      "end_pst": "2025-04-26T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "9.0639469458333333333333333333333333333333333333333",
      "contrast": "0.8360530541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/PM25/+1",
      "start_pst": "2025-04-25T01:00:00",
      "end_pst": "2025-04-26T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "9.0625",
      "contrast": "0.8375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/PM25/+1",
      "start_pst": "2025-04-25T01:00:00",
      "end_pst": "2025-04-26T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "5.5233618478260869565217391304347826086956521739130",
      "contrast": "4.1766381521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/NO2/+1",
      "start_pst": "2025-04-25T01:00:00",
      "end_pst": "2025-04-26T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "5.5304347826086956521739130434782608695652173913043",
      "contrast": "4.1695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/NO2/+1",
      "start_pst": "2025-04-25T01:00:00",
      "end_pst": "2025-04-26T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "12.8848801",
      "contrast": "3.7151199",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/NO2/+1",
      "start_pst": "2025-04-25T01:00:00",
      "end_pst": "2025-04-26T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "12.9",
      "contrast": "3.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-25/NO2/+1",
      "start_pst": "2025-04-25T01:00:00",
      "end_pst": "2025-04-26T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/25/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "8.0106041916666666666666666666666666666666666666667",
      "contrast": "0.4893958083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/PM25/-1",
      "start_pst": "2025-04-25T23:00:00",
      "end_pst": "2025-04-26T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "8.0083333333333333333333333333333333333333333333333",
      "contrast": "0.4916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/PM25/-1",
      "start_pst": "2025-04-25T23:00:00",
      "end_pst": "2025-04-26T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "4.1803676260869565217391304347826086956521739130435",
      "contrast": "5.3196323739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/NO2/-1",
      "start_pst": "2025-04-25T23:00:00",
      "end_pst": "2025-04-26T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "4.1782608695652173913043478260869565217391304347826",
      "contrast": "5.3217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/NO2/-1",
      "start_pst": "2025-04-25T23:00:00",
      "end_pst": "2025-04-26T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.8",
      "town": "6.9828482",
      "contrast": "9.8171518",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/NO2/-1",
      "start_pst": "2025-04-25T23:00:00",
      "end_pst": "2025-04-26T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.8",
      "town": "7",
      "contrast": "9.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/NO2/-1",
      "start_pst": "2025-04-25T23:00:00",
      "end_pst": "2025-04-26T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "7.9296559166666666666666666666666666666666666666667",
      "contrast": "0.5703440833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/PM25/+0",
      "start_pst": "2025-04-26T00:00:00",
      "end_pst": "2025-04-27T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "7.925",
      "contrast": "0.575",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/PM25/+0",
      "start_pst": "2025-04-26T00:00:00",
      "end_pst": "2025-04-27T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "4.1069020913043478260869565217391304347826086956522",
      "contrast": "5.3930979086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/NO2/+0",
      "start_pst": "2025-04-26T00:00:00",
      "end_pst": "2025-04-27T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "4.1043478260869565217391304347826086956521739130435",
      "contrast": "5.3956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/NO2/+0",
      "start_pst": "2025-04-26T00:00:00",
      "end_pst": "2025-04-27T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.8",
      "town": "6.456284",
      "contrast": "10.343716",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/NO2/+0",
      "start_pst": "2025-04-26T00:00:00",
      "end_pst": "2025-04-27T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.8",
      "town": "6.5",
      "contrast": "10.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/NO2/+0",
      "start_pst": "2025-04-26T00:00:00",
      "end_pst": "2025-04-27T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "7.7757330208333333333333333333333333333333333333333",
      "contrast": "0.7242669791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/PM25/+1",
      "start_pst": "2025-04-26T01:00:00",
      "end_pst": "2025-04-27T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "7.7708333333333333333333333333333333333333333333333",
      "contrast": "0.7291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/PM25/+1",
      "start_pst": "2025-04-26T01:00:00",
      "end_pst": "2025-04-27T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "4.0867642217391304347826086956521739130434782608696",
      "contrast": "5.4132357782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/NO2/+1",
      "start_pst": "2025-04-26T01:00:00",
      "end_pst": "2025-04-27T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "4.0826086956521739130434782608695652173913043478261",
      "contrast": "5.4173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/NO2/+1",
      "start_pst": "2025-04-26T01:00:00",
      "end_pst": "2025-04-27T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.8",
      "town": "6.456284",
      "contrast": "10.343716",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/NO2/+1",
      "start_pst": "2025-04-26T01:00:00",
      "end_pst": "2025-04-27T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.8",
      "town": "6.5",
      "contrast": "10.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-26/NO2/+1",
      "start_pst": "2025-04-26T01:00:00",
      "end_pst": "2025-04-27T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/26/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "8.6843287375",
      "contrast": "-0.1843287375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/PM25/-1",
      "start_pst": "2025-04-26T23:00:00",
      "end_pst": "2025-04-27T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "8.6875",
      "contrast": "-0.1875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/PM25/-1",
      "start_pst": "2025-04-26T23:00:00",
      "end_pst": "2025-04-27T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "3.7645943956521739130434782608695652173913043478261",
      "contrast": "4.3354056043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/NO2/-1",
      "start_pst": "2025-04-26T23:00:00",
      "end_pst": "2025-04-27T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "3.7608695652173913043478260869565217391304347826087",
      "contrast": "4.3391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/NO2/-1",
      "start_pst": "2025-04-26T23:00:00",
      "end_pst": "2025-04-27T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "5.2931409",
      "contrast": "10.4068591",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/NO2/-1",
      "start_pst": "2025-04-26T23:00:00",
      "end_pst": "2025-04-27T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "5.3",
      "contrast": "10.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/NO2/-1",
      "start_pst": "2025-04-26T23:00:00",
      "end_pst": "2025-04-27T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "8.5581531958333333333333333333333333333333333333333",
      "contrast": "-0.0581531958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/PM25/+0",
      "start_pst": "2025-04-27T00:00:00",
      "end_pst": "2025-04-28T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "8.5625",
      "contrast": "-0.0625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/PM25/+0",
      "start_pst": "2025-04-27T00:00:00",
      "end_pst": "2025-04-28T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "3.7025847086956521739130434782608695652173913043478",
      "contrast": "4.3974152913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/NO2/+0",
      "start_pst": "2025-04-27T00:00:00",
      "end_pst": "2025-04-28T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "3.7",
      "contrast": "4.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/NO2/+0",
      "start_pst": "2025-04-27T00:00:00",
      "end_pst": "2025-04-28T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "4.9870028",
      "contrast": "10.7129972",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/NO2/+0",
      "start_pst": "2025-04-27T00:00:00",
      "end_pst": "2025-04-28T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "5",
      "contrast": "10.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/NO2/+0",
      "start_pst": "2025-04-27T00:00:00",
      "end_pst": "2025-04-28T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "8.5324776208333333333333333333333333333333333333333",
      "contrast": "-0.0324776208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/PM25/+1",
      "start_pst": "2025-04-27T01:00:00",
      "end_pst": "2025-04-28T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "8.5375",
      "contrast": "-0.0375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/PM25/+1",
      "start_pst": "2025-04-27T01:00:00",
      "end_pst": "2025-04-28T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "3.6332869260869565217391304347826086956521739130435",
      "contrast": "4.4667130739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/NO2/+1",
      "start_pst": "2025-04-27T01:00:00",
      "end_pst": "2025-04-28T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "3.6304347826086956521739130434782608695652173913043",
      "contrast": "4.4695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/NO2/+1",
      "start_pst": "2025-04-27T01:00:00",
      "end_pst": "2025-04-28T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "4.9870028",
      "contrast": "10.7129972",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/NO2/+1",
      "start_pst": "2025-04-27T01:00:00",
      "end_pst": "2025-04-28T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "5",
      "contrast": "10.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-27/NO2/+1",
      "start_pst": "2025-04-27T01:00:00",
      "end_pst": "2025-04-28T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/27/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.5701813833333333333333333333333333333333333333333",
      "contrast": "2.7298186166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/PM25/-1",
      "start_pst": "2025-04-27T23:00:00",
      "end_pst": "2025-04-28T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.575",
      "contrast": "2.725",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/PM25/-1",
      "start_pst": "2025-04-27T23:00:00",
      "end_pst": "2025-04-28T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "5.4196474434782608695652173913043478260869565217391",
      "contrast": "10.980352556521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/NO2/-1",
      "start_pst": "2025-04-27T23:00:00",
      "end_pst": "2025-04-28T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "5.4130434782608695652173913043478260869565217391304",
      "contrast": "10.986956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/NO2/-1",
      "start_pst": "2025-04-27T23:00:00",
      "end_pst": "2025-04-28T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.2",
      "town": "10.1227026",
      "contrast": "21.0772974",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/NO2/-1",
      "start_pst": "2025-04-27T23:00:00",
      "end_pst": "2025-04-28T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.2",
      "town": "10.1",
      "contrast": "21.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/NO2/-1",
      "start_pst": "2025-04-27T23:00:00",
      "end_pst": "2025-04-28T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.3134851291666666666666666666666666666666666666667",
      "contrast": "2.9865148708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/PM25/+0",
      "start_pst": "2025-04-28T00:00:00",
      "end_pst": "2025-04-29T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.3166666666666666666666666666666666666666666666667",
      "contrast": "2.9833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/PM25/+0",
      "start_pst": "2025-04-28T00:00:00",
      "end_pst": "2025-04-29T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "5.3301180043478260869565217391304347826086956521739",
      "contrast": "11.069881995652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/NO2/+0",
      "start_pst": "2025-04-28T00:00:00",
      "end_pst": "2025-04-29T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "5.3217391304347826086956521739130434782608695652174",
      "contrast": "11.078260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/NO2/+0",
      "start_pst": "2025-04-28T00:00:00",
      "end_pst": "2025-04-29T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.2",
      "town": "10.1227026",
      "contrast": "21.0772974",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/NO2/+0",
      "start_pst": "2025-04-28T00:00:00",
      "end_pst": "2025-04-29T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.2",
      "town": "10.1",
      "contrast": "21.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/NO2/+0",
      "start_pst": "2025-04-28T00:00:00",
      "end_pst": "2025-04-29T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.043358375",
      "contrast": "3.256641625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/PM25/+1",
      "start_pst": "2025-04-28T01:00:00",
      "end_pst": "2025-04-29T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.0458333333333333333333333333333333333333333333333",
      "contrast": "3.2541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/PM25/+1",
      "start_pst": "2025-04-28T01:00:00",
      "end_pst": "2025-04-29T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "5.2812858739130434782608695652173913043478260869565",
      "contrast": "11.118714126086956521739130434782608695652173913044",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/NO2/+1",
      "start_pst": "2025-04-28T01:00:00",
      "end_pst": "2025-04-29T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "5.2739130434782608695652173913043478260869565217391",
      "contrast": "11.126086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/NO2/+1",
      "start_pst": "2025-04-28T01:00:00",
      "end_pst": "2025-04-29T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.2",
      "town": "10.1227026",
      "contrast": "21.0772974",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/NO2/+1",
      "start_pst": "2025-04-28T01:00:00",
      "end_pst": "2025-04-29T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.2",
      "town": "10.1",
      "contrast": "21.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-28/NO2/+1",
      "start_pst": "2025-04-28T01:00:00",
      "end_pst": "2025-04-29T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/28/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "2.6428321166666666666666666666666666666666666666667",
      "contrast": "1.6571678833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/PM25/-1",
      "start_pst": "2025-04-28T23:00:00",
      "end_pst": "2025-04-29T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "2.6458333333333333333333333333333333333333333333333",
      "contrast": "1.6541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/PM25/-1",
      "start_pst": "2025-04-28T23:00:00",
      "end_pst": "2025-04-29T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.5391059869565217391304347826086956521739130434783",
      "contrast": "3.1608940130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/NO2/-1",
      "start_pst": "2025-04-28T23:00:00",
      "end_pst": "2025-04-29T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.5391304347826086956521739130434782608695652173913",
      "contrast": "3.1608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/NO2/-1",
      "start_pst": "2025-04-28T23:00:00",
      "end_pst": "2025-04-29T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "6.3625021",
      "contrast": "7.3374979",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/NO2/-1",
      "start_pst": "2025-04-28T23:00:00",
      "end_pst": "2025-04-29T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "6.4",
      "contrast": "7.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/NO2/-1",
      "start_pst": "2025-04-28T23:00:00",
      "end_pst": "2025-04-29T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "2.7240982833333333333333333333333333333333333333333",
      "contrast": "1.5759017166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/PM25/+0",
      "start_pst": "2025-04-29T00:00:00",
      "end_pst": "2025-04-30T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "2.7291666666666666666666666666666666666666666666667",
      "contrast": "1.5708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/PM25/+0",
      "start_pst": "2025-04-29T00:00:00",
      "end_pst": "2025-04-30T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.5795202043478260869565217391304347826086956521739",
      "contrast": "3.1204797956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/NO2/+0",
      "start_pst": "2025-04-29T00:00:00",
      "end_pst": "2025-04-30T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.5782608695652173913043478260869565217391304347826",
      "contrast": "3.1217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/NO2/+0",
      "start_pst": "2025-04-29T00:00:00",
      "end_pst": "2025-04-30T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "6.3625021",
      "contrast": "7.3374979",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/NO2/+0",
      "start_pst": "2025-04-29T00:00:00",
      "end_pst": "2025-04-30T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "6.4",
      "contrast": "7.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/NO2/+0",
      "start_pst": "2025-04-29T00:00:00",
      "end_pst": "2025-04-30T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "2.8334057833333333333333333333333333333333333333333",
      "contrast": "1.4665942166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/PM25/+1",
      "start_pst": "2025-04-29T01:00:00",
      "end_pst": "2025-04-30T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "2.8375",
      "contrast": "1.4625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/PM25/+1",
      "start_pst": "2025-04-29T01:00:00",
      "end_pst": "2025-04-30T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.6390451173913043478260869565217391304347826086957",
      "contrast": "3.0609548826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/NO2/+1",
      "start_pst": "2025-04-29T01:00:00",
      "end_pst": "2025-04-30T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "3.6391304347826086956521739130434782608695652173913",
      "contrast": "3.0608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/NO2/+1",
      "start_pst": "2025-04-29T01:00:00",
      "end_pst": "2025-04-30T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "6.3625021",
      "contrast": "7.3374979",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/NO2/+1",
      "start_pst": "2025-04-29T01:00:00",
      "end_pst": "2025-04-30T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "6.4",
      "contrast": "7.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-29/NO2/+1",
      "start_pst": "2025-04-29T01:00:00",
      "end_pst": "2025-04-30T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/29/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "5.9426515625",
      "contrast": "-0.9426515625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/PM25/-1",
      "start_pst": "2025-04-29T23:00:00",
      "end_pst": "2025-04-30T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "5.9375",
      "contrast": "-0.9375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/PM25/-1",
      "start_pst": "2025-04-29T23:00:00",
      "end_pst": "2025-04-30T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "5.0477543565217391304347826086956521739130434782609",
      "contrast": "3.6522456434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/NO2/-1",
      "start_pst": "2025-04-29T23:00:00",
      "end_pst": "2025-04-30T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "5.0391304347826086956521739130434782608695652173913",
      "contrast": "3.6608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/NO2/-1",
      "start_pst": "2025-04-29T23:00:00",
      "end_pst": "2025-04-30T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "10.473278",
      "contrast": "7.426722",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/NO2/-1",
      "start_pst": "2025-04-29T23:00:00",
      "end_pst": "2025-04-30T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "10.5",
      "contrast": "7.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/NO2/-1",
      "start_pst": "2025-04-29T23:00:00",
      "end_pst": "2025-04-30T23:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "6.08051765",
      "contrast": "-1.08051765",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/PM25/+0",
      "start_pst": "2025-04-30T00:00:00",
      "end_pst": "2025-05-01T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "6.075",
      "contrast": "-1.075",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/PM25/+0",
      "start_pst": "2025-04-30T00:00:00",
      "end_pst": "2025-05-01T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "5.1465974956521739130434782608695652173913043478261",
      "contrast": "3.5534025043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/NO2/+0",
      "start_pst": "2025-04-30T00:00:00",
      "end_pst": "2025-05-01T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "5.1391304347826086956521739130434782608695652173913",
      "contrast": "3.5608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/NO2/+0",
      "start_pst": "2025-04-30T00:00:00",
      "end_pst": "2025-05-01T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "10.473278",
      "contrast": "7.426722",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/NO2/+0",
      "start_pst": "2025-04-30T00:00:00",
      "end_pst": "2025-05-01T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "10.5",
      "contrast": "7.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/NO2/+0",
      "start_pst": "2025-04-30T00:00:00",
      "end_pst": "2025-05-01T00:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "6.1572878583333333333333333333333333333333333333333",
      "contrast": "-1.1572878583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/PM25/+1",
      "start_pst": "2025-04-30T01:00:00",
      "end_pst": "2025-05-01T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "6.1541666666666666666666666666666666666666666666667",
      "contrast": "-1.1541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/PM25/+1",
      "start_pst": "2025-04-30T01:00:00",
      "end_pst": "2025-05-01T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-04-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "5.1401678434782608695652173913043478260869565217391",
      "contrast": "3.5598321565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/NO2/+1",
      "start_pst": "2025-04-30T01:00:00",
      "end_pst": "2025-05-01T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "5.1304347826086956521739130434782608695652173913043",
      "contrast": "3.5695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/NO2/+1",
      "start_pst": "2025-04-30T01:00:00",
      "end_pst": "2025-05-01T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-04-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "10.473278",
      "contrast": "7.426722",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/NO2/+1",
      "start_pst": "2025-04-30T01:00:00",
      "end_pst": "2025-05-01T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-04-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "10.5",
      "contrast": "7.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-04-30/NO2/+1",
      "start_pst": "2025-04-30T01:00:00",
      "end_pst": "2025-05-01T01:00:00",
      "onsite_source": {
        "month": "2025-04",
        "date_printed": "4/30/2025",
        "table": "B.1",
        "pdf_page": 32,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/2025-06-20_Apr_R0.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-04.pdf",
        "source_pdf_sha256": "4c7134a49d03bae9d1b8de742d2569f6332b2af3e73c05726d1344254067a781",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-04/table-b1-air-native.csv",
        "source_csv_sha256": "9c63ca710a5f91b8e621c7e0722dfcdc7dc67f3e9d0f81b0bd7cf49ac12f6364",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "5.5859171083333333333333333333333333333333333333333",
      "contrast": "1.2140828916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/PM25/-1",
      "start_pst": "2025-04-30T23:00:00",
      "end_pst": "2025-05-01T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "5.5875",
      "contrast": "1.2125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/PM25/-1",
      "start_pst": "2025-04-30T23:00:00",
      "end_pst": "2025-05-01T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.8",
      "town": "5.2664205956521739130434782608695652173913043478261",
      "contrast": "6.5335794043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/NO2/-1",
      "start_pst": "2025-04-30T23:00:00",
      "end_pst": "2025-05-01T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.8",
      "town": "5.2608695652173913043478260869565217391304347826087",
      "contrast": "6.5391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/NO2/-1",
      "start_pst": "2025-04-30T23:00:00",
      "end_pst": "2025-05-01T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.4",
      "town": "17.604908",
      "contrast": "15.795092",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/NO2/-1",
      "start_pst": "2025-04-30T23:00:00",
      "end_pst": "2025-05-01T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.4",
      "town": "17.6",
      "contrast": "15.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/NO2/-1",
      "start_pst": "2025-04-30T23:00:00",
      "end_pst": "2025-05-01T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "5.6444607333333333333333333333333333333333333333333",
      "contrast": "1.1555392666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/PM25/+0",
      "start_pst": "2025-05-01T00:00:00",
      "end_pst": "2025-05-02T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "5.6458333333333333333333333333333333333333333333333",
      "contrast": "1.1541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/PM25/+0",
      "start_pst": "2025-05-01T00:00:00",
      "end_pst": "2025-05-02T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.8",
      "town": "5.2389389347826086956521739130434782608695652173913",
      "contrast": "6.5610610652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/NO2/+0",
      "start_pst": "2025-05-01T00:00:00",
      "end_pst": "2025-05-02T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.8",
      "town": "5.2347826086956521739130434782608695652173913043478",
      "contrast": "6.5652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/NO2/+0",
      "start_pst": "2025-05-01T00:00:00",
      "end_pst": "2025-05-02T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.4",
      "town": "17.604908",
      "contrast": "15.795092",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/NO2/+0",
      "start_pst": "2025-05-01T00:00:00",
      "end_pst": "2025-05-02T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.4",
      "town": "17.6",
      "contrast": "15.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/NO2/+0",
      "start_pst": "2025-05-01T00:00:00",
      "end_pst": "2025-05-02T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "5.6733635625",
      "contrast": "1.1266364375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/PM25/+1",
      "start_pst": "2025-05-01T01:00:00",
      "end_pst": "2025-05-02T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "5.675",
      "contrast": "1.125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/PM25/+1",
      "start_pst": "2025-05-01T01:00:00",
      "end_pst": "2025-05-02T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.8",
      "town": "5.3172086347826086956521739130434782608695652173913",
      "contrast": "6.4827913652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/NO2/+1",
      "start_pst": "2025-05-01T01:00:00",
      "end_pst": "2025-05-02T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.8",
      "town": "5.3130434782608695652173913043478260869565217391304",
      "contrast": "6.4869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/NO2/+1",
      "start_pst": "2025-05-01T01:00:00",
      "end_pst": "2025-05-02T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.4",
      "town": "17.604908",
      "contrast": "15.795092",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/NO2/+1",
      "start_pst": "2025-05-01T01:00:00",
      "end_pst": "2025-05-02T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.4",
      "town": "17.6",
      "contrast": "15.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-01/NO2/+1",
      "start_pst": "2025-05-01T01:00:00",
      "end_pst": "2025-05-02T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.7952114333333333333333333333333333333333333333333",
      "contrast": "3.1047885666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/PM25/-1",
      "start_pst": "2025-05-01T23:00:00",
      "end_pst": "2025-05-02T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.8",
      "contrast": "3.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/PM25/-1",
      "start_pst": "2025-05-01T23:00:00",
      "end_pst": "2025-05-02T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.5428472913043478260869565217391304347826086956522",
      "contrast": "7.2571527086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/NO2/-1",
      "start_pst": "2025-05-01T23:00:00",
      "end_pst": "2025-05-02T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.5521739130434782608695652173913043478260869565217",
      "contrast": "7.2478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/NO2/-1",
      "start_pst": "2025-05-01T23:00:00",
      "end_pst": "2025-05-02T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "5.619947",
      "contrast": "16.780053",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/NO2/-1",
      "start_pst": "2025-05-01T23:00:00",
      "end_pst": "2025-05-02T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "5.6",
      "contrast": "16.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/NO2/-1",
      "start_pst": "2025-05-01T23:00:00",
      "end_pst": "2025-05-02T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.5339942208333333333333333333333333333333333333333",
      "contrast": "3.3660057791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/PM25/+0",
      "start_pst": "2025-05-02T00:00:00",
      "end_pst": "2025-05-03T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.5375",
      "contrast": "3.3625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/PM25/+0",
      "start_pst": "2025-05-02T00:00:00",
      "end_pst": "2025-05-03T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.4239431608695652173913043478260869565217391304348",
      "contrast": "7.3760568391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/NO2/+0",
      "start_pst": "2025-05-02T00:00:00",
      "end_pst": "2025-05-03T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.4304347826086956521739130434782608695652173913043",
      "contrast": "7.3695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/NO2/+0",
      "start_pst": "2025-05-02T00:00:00",
      "end_pst": "2025-05-03T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "5.619947",
      "contrast": "16.780053",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/NO2/+0",
      "start_pst": "2025-05-02T00:00:00",
      "end_pst": "2025-05-03T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "5.6",
      "contrast": "16.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/NO2/+0",
      "start_pst": "2025-05-02T00:00:00",
      "end_pst": "2025-05-03T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.3361423083333333333333333333333333333333333333333",
      "contrast": "3.5638576916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/PM25/+1",
      "start_pst": "2025-05-02T01:00:00",
      "end_pst": "2025-05-03T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.3375",
      "contrast": "3.5625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/PM25/+1",
      "start_pst": "2025-05-02T01:00:00",
      "end_pst": "2025-05-03T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.2691229826086956521739130434782608695652173913043",
      "contrast": "7.5308770173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/NO2/+1",
      "start_pst": "2025-05-02T01:00:00",
      "end_pst": "2025-05-03T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.2782608695652173913043478260869565217391304347826",
      "contrast": "7.5217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/NO2/+1",
      "start_pst": "2025-05-02T01:00:00",
      "end_pst": "2025-05-03T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "5.619947",
      "contrast": "16.780053",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/NO2/+1",
      "start_pst": "2025-05-02T01:00:00",
      "end_pst": "2025-05-03T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "5.6",
      "contrast": "16.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-02/NO2/+1",
      "start_pst": "2025-05-02T01:00:00",
      "end_pst": "2025-05-03T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.1236193833333333333333333333333333333333333333333",
      "contrast": "1.8763806166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/PM25/-1",
      "start_pst": "2025-05-02T23:00:00",
      "end_pst": "2025-05-03T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.1166666666666666666666666666666666666666666666667",
      "contrast": "1.8833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/PM25/-1",
      "start_pst": "2025-05-02T23:00:00",
      "end_pst": "2025-05-03T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "1.9667735391304347826086956521739130434782608695652",
      "contrast": "6.7332264608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/NO2/-1",
      "start_pst": "2025-05-02T23:00:00",
      "end_pst": "2025-05-03T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "1.9565217391304347826086956521739130434782608695652",
      "contrast": "6.7434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/NO2/-1",
      "start_pst": "2025-05-02T23:00:00",
      "end_pst": "2025-05-03T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.4",
      "town": "5.1848521",
      "contrast": "26.2151479",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/NO2/-1",
      "start_pst": "2025-05-02T23:00:00",
      "end_pst": "2025-05-03T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.4",
      "town": "5.2",
      "contrast": "26.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/NO2/-1",
      "start_pst": "2025-05-02T23:00:00",
      "end_pst": "2025-05-03T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.3272646666666666666666666666666666666666666666667",
      "contrast": "1.6727353333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/PM25/+0",
      "start_pst": "2025-05-03T00:00:00",
      "end_pst": "2025-05-04T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.3208333333333333333333333333333333333333333333333",
      "contrast": "1.6791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/PM25/+0",
      "start_pst": "2025-05-03T00:00:00",
      "end_pst": "2025-05-04T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "2.0492676695652173913043478260869565217391304347826",
      "contrast": "6.6507323304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/NO2/+0",
      "start_pst": "2025-05-03T00:00:00",
      "end_pst": "2025-05-04T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "2.0391304347826086956521739130434782608695652173913",
      "contrast": "6.6608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/NO2/+0",
      "start_pst": "2025-05-03T00:00:00",
      "end_pst": "2025-05-04T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.4",
      "town": "5.1848521",
      "contrast": "26.2151479",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/NO2/+0",
      "start_pst": "2025-05-03T00:00:00",
      "end_pst": "2025-05-04T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.4",
      "town": "5.2",
      "contrast": "26.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/NO2/+0",
      "start_pst": "2025-05-03T00:00:00",
      "end_pst": "2025-05-04T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.4659613333333333333333333333333333333333333333333",
      "contrast": "1.5340386666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/PM25/+1",
      "start_pst": "2025-05-03T01:00:00",
      "end_pst": "2025-05-04T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.4583333333333333333333333333333333333333333333333",
      "contrast": "1.5416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/PM25/+1",
      "start_pst": "2025-05-03T01:00:00",
      "end_pst": "2025-05-04T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "2.1286628869565217391304347826086956521739130434783",
      "contrast": "6.5713371130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/NO2/+1",
      "start_pst": "2025-05-03T01:00:00",
      "end_pst": "2025-05-04T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "2.1173913043478260869565217391304347826086956521739",
      "contrast": "6.5826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/NO2/+1",
      "start_pst": "2025-05-03T01:00:00",
      "end_pst": "2025-05-04T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.4",
      "town": "5.1848521",
      "contrast": "26.2151479",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/NO2/+1",
      "start_pst": "2025-05-03T01:00:00",
      "end_pst": "2025-05-04T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.4",
      "town": "5.2",
      "contrast": "26.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-03/NO2/+1",
      "start_pst": "2025-05-03T01:00:00",
      "end_pst": "2025-05-04T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "3.2013085125",
      "contrast": "1.1986914875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/PM25/-1",
      "start_pst": "2025-05-03T23:00:00",
      "end_pst": "2025-05-04T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "3.2",
      "contrast": "1.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/PM25/-1",
      "start_pst": "2025-05-03T23:00:00",
      "end_pst": "2025-05-04T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "2.8435071173913043478260869565217391304347826086957",
      "contrast": "4.8564928826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/NO2/-1",
      "start_pst": "2025-05-03T23:00:00",
      "end_pst": "2025-05-04T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "2.8434782608695652173913043478260869565217391304348",
      "contrast": "4.8565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/NO2/-1",
      "start_pst": "2025-05-03T23:00:00",
      "end_pst": "2025-05-04T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "6.4331598",
      "contrast": "14.5668402",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/NO2/-1",
      "start_pst": "2025-05-03T23:00:00",
      "end_pst": "2025-05-04T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "6.4",
      "contrast": "14.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/NO2/-1",
      "start_pst": "2025-05-03T23:00:00",
      "end_pst": "2025-05-04T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "3.1805226833333333333333333333333333333333333333333",
      "contrast": "1.2194773166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/PM25/+0",
      "start_pst": "2025-05-04T00:00:00",
      "end_pst": "2025-05-05T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "3.1791666666666666666666666666666666666666666666667",
      "contrast": "1.2208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/PM25/+0",
      "start_pst": "2025-05-04T00:00:00",
      "end_pst": "2025-05-05T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "2.8952377695652173913043478260869565217391304347826",
      "contrast": "4.8047622304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/NO2/+0",
      "start_pst": "2025-05-04T00:00:00",
      "end_pst": "2025-05-05T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "2.8956521739130434782608695652173913043478260869565",
      "contrast": "4.8043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/NO2/+0",
      "start_pst": "2025-05-04T00:00:00",
      "end_pst": "2025-05-05T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "6.4331598",
      "contrast": "14.5668402",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/NO2/+0",
      "start_pst": "2025-05-04T00:00:00",
      "end_pst": "2025-05-05T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "6.4",
      "contrast": "14.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/NO2/+0",
      "start_pst": "2025-05-04T00:00:00",
      "end_pst": "2025-05-05T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "3.1804704708333333333333333333333333333333333333333",
      "contrast": "1.2195295291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/PM25/+1",
      "start_pst": "2025-05-04T01:00:00",
      "end_pst": "2025-05-05T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "3.1791666666666666666666666666666666666666666666667",
      "contrast": "1.2208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/PM25/+1",
      "start_pst": "2025-05-04T01:00:00",
      "end_pst": "2025-05-05T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "2.9038976",
      "contrast": "4.7961024",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/NO2/+1",
      "start_pst": "2025-05-04T01:00:00",
      "end_pst": "2025-05-05T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "2.9043478260869565217391304347826086956521739130435",
      "contrast": "4.7956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/NO2/+1",
      "start_pst": "2025-05-04T01:00:00",
      "end_pst": "2025-05-05T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "6.4331598",
      "contrast": "14.5668402",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/NO2/+1",
      "start_pst": "2025-05-04T01:00:00",
      "end_pst": "2025-05-05T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "6.4",
      "contrast": "14.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-04/NO2/+1",
      "start_pst": "2025-05-04T01:00:00",
      "end_pst": "2025-05-05T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "4.0265890",
      "contrast": "0.9734110",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/PM25/-1",
      "start_pst": "2025-05-04T23:00:00",
      "end_pst": "2025-05-05T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "4.0166666666666666666666666666666666666666666666667",
      "contrast": "0.9833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/PM25/-1",
      "start_pst": "2025-05-04T23:00:00",
      "end_pst": "2025-05-05T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "4.4075939521739130434782608695652173913043478260870",
      "contrast": "4.5924060478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/NO2/-1",
      "start_pst": "2025-05-04T23:00:00",
      "end_pst": "2025-05-05T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "4.4086956521739130434782608695652173913043478260870",
      "contrast": "4.5913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/NO2/-1",
      "start_pst": "2025-05-04T23:00:00",
      "end_pst": "2025-05-05T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.4",
      "town": "9.77318",
      "contrast": "9.62682",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/NO2/-1",
      "start_pst": "2025-05-04T23:00:00",
      "end_pst": "2025-05-05T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.4",
      "town": "9.8",
      "contrast": "9.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/NO2/-1",
      "start_pst": "2025-05-04T23:00:00",
      "end_pst": "2025-05-05T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "4.0087490541666666666666666666666666666666666666667",
      "contrast": "0.9912509458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/PM25/+0",
      "start_pst": "2025-05-05T00:00:00",
      "end_pst": "2025-05-06T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "4.0",
      "contrast": "1.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/PM25/+0",
      "start_pst": "2025-05-05T00:00:00",
      "end_pst": "2025-05-06T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "4.3892230347826086956521739130434782608695652173913",
      "contrast": "4.6107769652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/NO2/+0",
      "start_pst": "2025-05-05T00:00:00",
      "end_pst": "2025-05-06T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "4.3913043478260869565217391304347826086956521739130",
      "contrast": "4.6086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/NO2/+0",
      "start_pst": "2025-05-05T00:00:00",
      "end_pst": "2025-05-06T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.4",
      "town": "9.77318",
      "contrast": "9.62682",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/NO2/+0",
      "start_pst": "2025-05-05T00:00:00",
      "end_pst": "2025-05-06T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.4",
      "town": "9.8",
      "contrast": "9.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/NO2/+0",
      "start_pst": "2025-05-05T00:00:00",
      "end_pst": "2025-05-06T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "4.0148083",
      "contrast": "0.9851917",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/PM25/+1",
      "start_pst": "2025-05-05T01:00:00",
      "end_pst": "2025-05-06T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "4.0083333333333333333333333333333333333333333333333",
      "contrast": "0.9916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/PM25/+1",
      "start_pst": "2025-05-05T01:00:00",
      "end_pst": "2025-05-06T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "4.4017520739130434782608695652173913043478260869565",
      "contrast": "4.5982479260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/NO2/+1",
      "start_pst": "2025-05-05T01:00:00",
      "end_pst": "2025-05-06T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "4.4043478260869565217391304347826086956521739130435",
      "contrast": "4.5956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/NO2/+1",
      "start_pst": "2025-05-05T01:00:00",
      "end_pst": "2025-05-06T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.4",
      "town": "9.77318",
      "contrast": "9.62682",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/NO2/+1",
      "start_pst": "2025-05-05T01:00:00",
      "end_pst": "2025-05-06T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.4",
      "town": "9.8",
      "contrast": "9.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-05/NO2/+1",
      "start_pst": "2025-05-05T01:00:00",
      "end_pst": "2025-05-06T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.7099482291666666666666666666666666666666666666667",
      "contrast": "1.6900517708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/PM25/-1",
      "start_pst": "2025-05-05T23:00:00",
      "end_pst": "2025-05-06T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.7166666666666666666666666666666666666666666666667",
      "contrast": "1.6833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/PM25/-1",
      "start_pst": "2025-05-05T23:00:00",
      "end_pst": "2025-05-06T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "6.6614153391304347826086956521739130434782608695652",
      "contrast": "4.9385846608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/NO2/-1",
      "start_pst": "2025-05-05T23:00:00",
      "end_pst": "2025-05-06T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "6.6652173913043478260869565217391304347826086956522",
      "contrast": "4.9347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/NO2/-1",
      "start_pst": "2025-05-05T23:00:00",
      "end_pst": "2025-05-06T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.4",
      "town": "16.1327114",
      "contrast": "14.2672886",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/NO2/-1",
      "start_pst": "2025-05-05T23:00:00",
      "end_pst": "2025-05-06T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.4",
      "town": "16.1",
      "contrast": "14.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/NO2/-1",
      "start_pst": "2025-05-05T23:00:00",
      "end_pst": "2025-05-06T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.8516939333333333333333333333333333333333333333333",
      "contrast": "1.5483060666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/PM25/+0",
      "start_pst": "2025-05-06T00:00:00",
      "end_pst": "2025-05-07T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.8583333333333333333333333333333333333333333333333",
      "contrast": "1.5416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/PM25/+0",
      "start_pst": "2025-05-06T00:00:00",
      "end_pst": "2025-05-07T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "6.8185348217391304347826086956521739130434782608696",
      "contrast": "4.7814651782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/NO2/+0",
      "start_pst": "2025-05-06T00:00:00",
      "end_pst": "2025-05-07T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "6.8217391304347826086956521739130434782608695652174",
      "contrast": "4.7782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/NO2/+0",
      "start_pst": "2025-05-06T00:00:00",
      "end_pst": "2025-05-07T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.4",
      "town": "16.1327114",
      "contrast": "14.2672886",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/NO2/+0",
      "start_pst": "2025-05-06T00:00:00",
      "end_pst": "2025-05-07T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.4",
      "town": "16.1",
      "contrast": "14.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/NO2/+0",
      "start_pst": "2025-05-06T00:00:00",
      "end_pst": "2025-05-07T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.9851850333333333333333333333333333333333333333333",
      "contrast": "1.4148149666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/PM25/+1",
      "start_pst": "2025-05-06T01:00:00",
      "end_pst": "2025-05-07T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.9916666666666666666666666666666666666666666666667",
      "contrast": "1.4083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/PM25/+1",
      "start_pst": "2025-05-06T01:00:00",
      "end_pst": "2025-05-07T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "6.9271057391304347826086956521739130434782608695652",
      "contrast": "4.6728942608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/NO2/+1",
      "start_pst": "2025-05-06T01:00:00",
      "end_pst": "2025-05-07T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "6.9304347826086956521739130434782608695652173913043",
      "contrast": "4.6695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/NO2/+1",
      "start_pst": "2025-05-06T01:00:00",
      "end_pst": "2025-05-07T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.4",
      "town": "16.1327114",
      "contrast": "14.2672886",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/NO2/+1",
      "start_pst": "2025-05-06T01:00:00",
      "end_pst": "2025-05-07T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.4",
      "town": "16.1",
      "contrast": "14.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-06/NO2/+1",
      "start_pst": "2025-05-06T01:00:00",
      "end_pst": "2025-05-07T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "6.3177110125",
      "contrast": "0.1822889875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/PM25/-1",
      "start_pst": "2025-05-06T23:00:00",
      "end_pst": "2025-05-07T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "6.3125",
      "contrast": "0.1875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/PM25/-1",
      "start_pst": "2025-05-06T23:00:00",
      "end_pst": "2025-05-07T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "4.5275590565217391304347826086956521739130434782609",
      "contrast": "6.3724409434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/NO2/-1",
      "start_pst": "2025-05-06T23:00:00",
      "end_pst": "2025-05-07T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "4.5217391304347826086956521739130434782608695652174",
      "contrast": "6.3782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/NO2/-1",
      "start_pst": "2025-05-06T23:00:00",
      "end_pst": "2025-05-07T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.4",
      "town": "7.922174",
      "contrast": "22.477826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/NO2/-1",
      "start_pst": "2025-05-06T23:00:00",
      "end_pst": "2025-05-07T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.4",
      "town": "7.9",
      "contrast": "22.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/NO2/-1",
      "start_pst": "2025-05-06T23:00:00",
      "end_pst": "2025-05-07T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "6.1597300958333333333333333333333333333333333333333",
      "contrast": "0.3402699041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/PM25/+0",
      "start_pst": "2025-05-07T00:00:00",
      "end_pst": "2025-05-08T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "6.1541666666666666666666666666666666666666666666667",
      "contrast": "0.3458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/PM25/+0",
      "start_pst": "2025-05-07T00:00:00",
      "end_pst": "2025-05-08T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "4.2239678826086956521739130434782608695652173913043",
      "contrast": "6.6760321173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/NO2/+0",
      "start_pst": "2025-05-07T00:00:00",
      "end_pst": "2025-05-08T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "4.2173913043478260869565217391304347826086956521739",
      "contrast": "6.6826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/NO2/+0",
      "start_pst": "2025-05-07T00:00:00",
      "end_pst": "2025-05-08T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.4",
      "town": "7.9155588",
      "contrast": "22.4844412",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/NO2/+0",
      "start_pst": "2025-05-07T00:00:00",
      "end_pst": "2025-05-08T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.4",
      "town": "7.9",
      "contrast": "22.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/NO2/+0",
      "start_pst": "2025-05-07T00:00:00",
      "end_pst": "2025-05-08T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "6.0294899125",
      "contrast": "0.4705100875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/PM25/+1",
      "start_pst": "2025-05-07T01:00:00",
      "end_pst": "2025-05-08T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "6.025",
      "contrast": "0.475",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/PM25/+1",
      "start_pst": "2025-05-07T01:00:00",
      "end_pst": "2025-05-08T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "3.9974526173913043478260869565217391304347826086957",
      "contrast": "6.9025473826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/NO2/+1",
      "start_pst": "2025-05-07T01:00:00",
      "end_pst": "2025-05-08T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "3.9913043478260869565217391304347826086956521739130",
      "contrast": "6.9086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/NO2/+1",
      "start_pst": "2025-05-07T01:00:00",
      "end_pst": "2025-05-08T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.4",
      "town": "7.9155588",
      "contrast": "22.4844412",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/NO2/+1",
      "start_pst": "2025-05-07T01:00:00",
      "end_pst": "2025-05-08T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.4",
      "town": "7.9",
      "contrast": "22.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-07/NO2/+1",
      "start_pst": "2025-05-07T01:00:00",
      "end_pst": "2025-05-08T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.494114375",
      "contrast": "1.405885625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/PM25/-1",
      "start_pst": "2025-05-07T23:00:00",
      "end_pst": "2025-05-08T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.4916666666666666666666666666666666666666666666667",
      "contrast": "1.4083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/PM25/-1",
      "start_pst": "2025-05-07T23:00:00",
      "end_pst": "2025-05-08T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "4.2069442782608695652173913043478260869565217391304",
      "contrast": "3.8930557217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/NO2/-1",
      "start_pst": "2025-05-07T23:00:00",
      "end_pst": "2025-05-08T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "4.2130434782608695652173913043478260869565217391304",
      "contrast": "3.8869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/NO2/-1",
      "start_pst": "2025-05-07T23:00:00",
      "end_pst": "2025-05-08T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.3",
      "town": "9.6020365",
      "contrast": "9.6979635",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/NO2/-1",
      "start_pst": "2025-05-07T23:00:00",
      "end_pst": "2025-05-08T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.3",
      "town": "9.6",
      "contrast": "9.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/NO2/-1",
      "start_pst": "2025-05-07T23:00:00",
      "end_pst": "2025-05-08T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.60844725",
      "contrast": "1.29155275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/PM25/+0",
      "start_pst": "2025-05-08T00:00:00",
      "end_pst": "2025-05-09T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.6041666666666666666666666666666666666666666666667",
      "contrast": "1.2958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/PM25/+0",
      "start_pst": "2025-05-08T00:00:00",
      "end_pst": "2025-05-09T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "4.3482101913043478260869565217391304347826086956522",
      "contrast": "3.7517898086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/NO2/+0",
      "start_pst": "2025-05-08T00:00:00",
      "end_pst": "2025-05-09T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "4.3565217391304347826086956521739130434782608695652",
      "contrast": "3.7434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/NO2/+0",
      "start_pst": "2025-05-08T00:00:00",
      "end_pst": "2025-05-09T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.3",
      "town": "9.6020365",
      "contrast": "9.6979635",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/NO2/+0",
      "start_pst": "2025-05-08T00:00:00",
      "end_pst": "2025-05-09T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.3",
      "town": "9.6",
      "contrast": "9.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/NO2/+0",
      "start_pst": "2025-05-08T00:00:00",
      "end_pst": "2025-05-09T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.6214786333333333333333333333333333333333333333333",
      "contrast": "1.2785213666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/PM25/+1",
      "start_pst": "2025-05-08T01:00:00",
      "end_pst": "2025-05-09T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.6166666666666666666666666666666666666666666666667",
      "contrast": "1.2833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/PM25/+1",
      "start_pst": "2025-05-08T01:00:00",
      "end_pst": "2025-05-09T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "4.4048127173913043478260869565217391304347826086957",
      "contrast": "3.6951872826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/NO2/+1",
      "start_pst": "2025-05-08T01:00:00",
      "end_pst": "2025-05-09T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "4.4130434782608695652173913043478260869565217391304",
      "contrast": "3.6869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/NO2/+1",
      "start_pst": "2025-05-08T01:00:00",
      "end_pst": "2025-05-09T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.3",
      "town": "9.6020365",
      "contrast": "9.6979635",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/NO2/+1",
      "start_pst": "2025-05-08T01:00:00",
      "end_pst": "2025-05-09T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.3",
      "town": "9.6",
      "contrast": "9.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-08/NO2/+1",
      "start_pst": "2025-05-08T01:00:00",
      "end_pst": "2025-05-09T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.5339335916666666666666666666666666666666666666667",
      "contrast": "1.9660664083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/PM25/-1",
      "start_pst": "2025-05-08T23:00:00",
      "end_pst": "2025-05-09T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.5375",
      "contrast": "1.9625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/PM25/-1",
      "start_pst": "2025-05-08T23:00:00",
      "end_pst": "2025-05-09T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.7605751956521739130434782608695652173913043478261",
      "contrast": "3.7394248043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/NO2/-1",
      "start_pst": "2025-05-08T23:00:00",
      "end_pst": "2025-05-09T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.7565217391304347826086956521739130434782608695652",
      "contrast": "3.7434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/NO2/-1",
      "start_pst": "2025-05-08T23:00:00",
      "end_pst": "2025-05-09T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.2",
      "town": "10.218338",
      "contrast": "6.981662",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/NO2/-1",
      "start_pst": "2025-05-08T23:00:00",
      "end_pst": "2025-05-09T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.2",
      "town": "10.2",
      "contrast": "7.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/NO2/-1",
      "start_pst": "2025-05-08T23:00:00",
      "end_pst": "2025-05-09T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.7032115375",
      "contrast": "1.7967884625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/PM25/+0",
      "start_pst": "2025-05-09T00:00:00",
      "end_pst": "2025-05-10T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.7083333333333333333333333333333333333333333333333",
      "contrast": "1.7916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/PM25/+0",
      "start_pst": "2025-05-09T00:00:00",
      "end_pst": "2025-05-10T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.7848455434782608695652173913043478260869565217391",
      "contrast": "3.7151544565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/NO2/+0",
      "start_pst": "2025-05-09T00:00:00",
      "end_pst": "2025-05-10T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.7782608695652173913043478260869565217391304347826",
      "contrast": "3.7217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/NO2/+0",
      "start_pst": "2025-05-09T00:00:00",
      "end_pst": "2025-05-10T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.2",
      "town": "10.218338",
      "contrast": "6.981662",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/NO2/+0",
      "start_pst": "2025-05-09T00:00:00",
      "end_pst": "2025-05-10T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.2",
      "town": "10.2",
      "contrast": "7.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/NO2/+0",
      "start_pst": "2025-05-09T00:00:00",
      "end_pst": "2025-05-10T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.8292218583333333333333333333333333333333333333333",
      "contrast": "1.6707781416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/PM25/+1",
      "start_pst": "2025-05-09T01:00:00",
      "end_pst": "2025-05-10T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.8333333333333333333333333333333333333333333333333",
      "contrast": "1.6666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/PM25/+1",
      "start_pst": "2025-05-09T01:00:00",
      "end_pst": "2025-05-10T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.8703645782608695652173913043478260869565217391304",
      "contrast": "3.6296354217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/NO2/+1",
      "start_pst": "2025-05-09T01:00:00",
      "end_pst": "2025-05-10T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.8608695652173913043478260869565217391304347826087",
      "contrast": "3.6391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/NO2/+1",
      "start_pst": "2025-05-09T01:00:00",
      "end_pst": "2025-05-10T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.2",
      "town": "10.218338",
      "contrast": "6.981662",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/NO2/+1",
      "start_pst": "2025-05-09T01:00:00",
      "end_pst": "2025-05-10T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.2",
      "town": "10.2",
      "contrast": "7.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-09/NO2/+1",
      "start_pst": "2025-05-09T01:00:00",
      "end_pst": "2025-05-10T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "4.9422319208333333333333333333333333333333333333333",
      "contrast": "2.5577680791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/PM25/-1",
      "start_pst": "2025-05-09T23:00:00",
      "end_pst": "2025-05-10T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "4.9458333333333333333333333333333333333333333333333",
      "contrast": "2.5541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/PM25/-1",
      "start_pst": "2025-05-09T23:00:00",
      "end_pst": "2025-05-10T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "3.5719332217391304347826086956521739130434782608696",
      "contrast": "9.4280667782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/NO2/-1",
      "start_pst": "2025-05-09T23:00:00",
      "end_pst": "2025-05-10T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "3.5739130434782608695652173913043478260869565217391",
      "contrast": "9.4260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/NO2/-1",
      "start_pst": "2025-05-09T23:00:00",
      "end_pst": "2025-05-10T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.0",
      "town": "5.0505319",
      "contrast": "24.9494681",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/NO2/-1",
      "start_pst": "2025-05-09T23:00:00",
      "end_pst": "2025-05-10T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.0",
      "town": "5.1",
      "contrast": "24.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/NO2/-1",
      "start_pst": "2025-05-09T23:00:00",
      "end_pst": "2025-05-10T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "4.6419163",
      "contrast": "2.8580837",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/PM25/+0",
      "start_pst": "2025-05-10T00:00:00",
      "end_pst": "2025-05-11T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "4.6458333333333333333333333333333333333333333333333",
      "contrast": "2.8541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/PM25/+0",
      "start_pst": "2025-05-10T00:00:00",
      "end_pst": "2025-05-11T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "3.4258284826086956521739130434782608695652173913043",
      "contrast": "9.5741715173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/NO2/+0",
      "start_pst": "2025-05-10T00:00:00",
      "end_pst": "2025-05-11T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "3.4304347826086956521739130434782608695652173913043",
      "contrast": "9.5695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/NO2/+0",
      "start_pst": "2025-05-10T00:00:00",
      "end_pst": "2025-05-11T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.0",
      "town": "5.0505319",
      "contrast": "24.9494681",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/NO2/+0",
      "start_pst": "2025-05-10T00:00:00",
      "end_pst": "2025-05-11T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.0",
      "town": "5.1",
      "contrast": "24.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/NO2/+0",
      "start_pst": "2025-05-10T00:00:00",
      "end_pst": "2025-05-11T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "4.4831363583333333333333333333333333333333333333333",
      "contrast": "3.0168636416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/PM25/+1",
      "start_pst": "2025-05-10T01:00:00",
      "end_pst": "2025-05-11T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "4.4875",
      "contrast": "3.0125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/PM25/+1",
      "start_pst": "2025-05-10T01:00:00",
      "end_pst": "2025-05-11T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "3.3001767043478260869565217391304347826086956521739",
      "contrast": "9.6998232956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/NO2/+1",
      "start_pst": "2025-05-10T01:00:00",
      "end_pst": "2025-05-11T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "3.3086956521739130434782608695652173913043478260870",
      "contrast": "9.6913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/NO2/+1",
      "start_pst": "2025-05-10T01:00:00",
      "end_pst": "2025-05-11T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.0",
      "town": "5.0505319",
      "contrast": "24.9494681",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/NO2/+1",
      "start_pst": "2025-05-10T01:00:00",
      "end_pst": "2025-05-11T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.0",
      "town": "5.1",
      "contrast": "24.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-10/NO2/+1",
      "start_pst": "2025-05-10T01:00:00",
      "end_pst": "2025-05-11T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.4107981083333333333333333333333333333333333333333",
      "contrast": "2.5892018916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/PM25/-1",
      "start_pst": "2025-05-10T23:00:00",
      "end_pst": "2025-05-11T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.4083333333333333333333333333333333333333333333333",
      "contrast": "2.5916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/PM25/-1",
      "start_pst": "2025-05-10T23:00:00",
      "end_pst": "2025-05-11T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "1.9506846217391304347826086956521739130434782608696",
      "contrast": "8.8493153782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/NO2/-1",
      "start_pst": "2025-05-10T23:00:00",
      "end_pst": "2025-05-11T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "1.9565217391304347826086956521739130434782608695652",
      "contrast": "8.8434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/NO2/-1",
      "start_pst": "2025-05-10T23:00:00",
      "end_pst": "2025-05-11T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "5.147027",
      "contrast": "28.752973",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/NO2/-1",
      "start_pst": "2025-05-10T23:00:00",
      "end_pst": "2025-05-11T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "5.1",
      "contrast": "28.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/NO2/-1",
      "start_pst": "2025-05-10T23:00:00",
      "end_pst": "2025-05-11T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.3525151958333333333333333333333333333333333333333",
      "contrast": "2.6474848041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/PM25/+0",
      "start_pst": "2025-05-11T00:00:00",
      "end_pst": "2025-05-12T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.35",
      "contrast": "2.65",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/PM25/+0",
      "start_pst": "2025-05-11T00:00:00",
      "end_pst": "2025-05-12T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "1.9562755782608695652173913043478260869565217391304",
      "contrast": "8.8437244217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/NO2/+0",
      "start_pst": "2025-05-11T00:00:00",
      "end_pst": "2025-05-12T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "1.9608695652173913043478260869565217391304347826087",
      "contrast": "8.8391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/NO2/+0",
      "start_pst": "2025-05-11T00:00:00",
      "end_pst": "2025-05-12T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "5.147027",
      "contrast": "28.752973",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/NO2/+0",
      "start_pst": "2025-05-11T00:00:00",
      "end_pst": "2025-05-12T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "5.1",
      "contrast": "28.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/NO2/+0",
      "start_pst": "2025-05-11T00:00:00",
      "end_pst": "2025-05-12T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.3049281125",
      "contrast": "2.6950718875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/PM25/+1",
      "start_pst": "2025-05-11T01:00:00",
      "end_pst": "2025-05-12T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.3",
      "contrast": "2.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/PM25/+1",
      "start_pst": "2025-05-11T01:00:00",
      "end_pst": "2025-05-12T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "1.9626297086956521739130434782608695652173913043478",
      "contrast": "8.8373702913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/NO2/+1",
      "start_pst": "2025-05-11T01:00:00",
      "end_pst": "2025-05-12T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "1.9652173913043478260869565217391304347826086956522",
      "contrast": "8.8347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/NO2/+1",
      "start_pst": "2025-05-11T01:00:00",
      "end_pst": "2025-05-12T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "5.147027",
      "contrast": "28.752973",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/NO2/+1",
      "start_pst": "2025-05-11T01:00:00",
      "end_pst": "2025-05-12T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "5.1",
      "contrast": "28.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-11/NO2/+1",
      "start_pst": "2025-05-11T01:00:00",
      "end_pst": "2025-05-12T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.7541246708333333333333333333333333333333333333333",
      "contrast": "1.8458753291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/PM25/-1",
      "start_pst": "2025-05-11T23:00:00",
      "end_pst": "2025-05-12T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.75",
      "contrast": "1.85",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/PM25/-1",
      "start_pst": "2025-05-11T23:00:00",
      "end_pst": "2025-05-12T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "2.8060963956521739130434782608695652173913043478261",
      "contrast": "8.5939036043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/NO2/-1",
      "start_pst": "2025-05-11T23:00:00",
      "end_pst": "2025-05-12T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "2.8043478260869565217391304347826086956521739130435",
      "contrast": "8.5956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/NO2/-1",
      "start_pst": "2025-05-11T23:00:00",
      "end_pst": "2025-05-12T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.3",
      "town": "4.696732",
      "contrast": "18.603268",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/NO2/-1",
      "start_pst": "2025-05-11T23:00:00",
      "end_pst": "2025-05-12T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.3",
      "town": "4.7",
      "contrast": "18.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/NO2/-1",
      "start_pst": "2025-05-11T23:00:00",
      "end_pst": "2025-05-12T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.8795289708333333333333333333333333333333333333333",
      "contrast": "1.7204710291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/PM25/+0",
      "start_pst": "2025-05-12T00:00:00",
      "end_pst": "2025-05-13T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.875",
      "contrast": "1.725",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/PM25/+0",
      "start_pst": "2025-05-12T00:00:00",
      "end_pst": "2025-05-13T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "2.8703636608695652173913043478260869565217391304348",
      "contrast": "8.5296363391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/NO2/+0",
      "start_pst": "2025-05-12T00:00:00",
      "end_pst": "2025-05-13T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "2.8695652173913043478260869565217391304347826086957",
      "contrast": "8.5304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/NO2/+0",
      "start_pst": "2025-05-12T00:00:00",
      "end_pst": "2025-05-13T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.3",
      "town": "4.696732",
      "contrast": "18.603268",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/NO2/+0",
      "start_pst": "2025-05-12T00:00:00",
      "end_pst": "2025-05-13T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.3",
      "town": "4.7",
      "contrast": "18.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/NO2/+0",
      "start_pst": "2025-05-12T00:00:00",
      "end_pst": "2025-05-13T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.9179115083333333333333333333333333333333333333333",
      "contrast": "1.6820884916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/PM25/+1",
      "start_pst": "2025-05-12T01:00:00",
      "end_pst": "2025-05-13T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "3.9166666666666666666666666666666666666666666666667",
      "contrast": "1.6833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/PM25/+1",
      "start_pst": "2025-05-12T01:00:00",
      "end_pst": "2025-05-13T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "2.9171356173913043478260869565217391304347826086957",
      "contrast": "8.4828643826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/NO2/+1",
      "start_pst": "2025-05-12T01:00:00",
      "end_pst": "2025-05-13T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "2.9173913043478260869565217391304347826086956521739",
      "contrast": "8.4826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/NO2/+1",
      "start_pst": "2025-05-12T01:00:00",
      "end_pst": "2025-05-13T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.3",
      "town": "4.696732",
      "contrast": "18.603268",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/NO2/+1",
      "start_pst": "2025-05-12T01:00:00",
      "end_pst": "2025-05-13T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.3",
      "town": "4.7",
      "contrast": "18.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-12/NO2/+1",
      "start_pst": "2025-05-12T01:00:00",
      "end_pst": "2025-05-13T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "6.6878101791666666666666666666666666666666666666667",
      "contrast": "0.6121898208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/PM25/-1",
      "start_pst": "2025-05-12T23:00:00",
      "end_pst": "2025-05-13T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "6.6916666666666666666666666666666666666666666666667",
      "contrast": "0.6083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/PM25/-1",
      "start_pst": "2025-05-12T23:00:00",
      "end_pst": "2025-05-13T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.0949163043478260869565217391304347826086956521739",
      "contrast": "4.1050836956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/NO2/-1",
      "start_pst": "2025-05-12T23:00:00",
      "end_pst": "2025-05-13T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.0956521739130434782608695652173913043478260869565",
      "contrast": "4.1043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/NO2/-1",
      "start_pst": "2025-05-12T23:00:00",
      "end_pst": "2025-05-13T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "6.3418679",
      "contrast": "7.1581321",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/NO2/-1",
      "start_pst": "2025-05-12T23:00:00",
      "end_pst": "2025-05-13T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "6.3",
      "contrast": "7.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/NO2/-1",
      "start_pst": "2025-05-12T23:00:00",
      "end_pst": "2025-05-13T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "6.6737515875",
      "contrast": "0.6262484125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/PM25/+0",
      "start_pst": "2025-05-13T00:00:00",
      "end_pst": "2025-05-14T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "6.6791666666666666666666666666666666666666666666667",
      "contrast": "0.6208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/PM25/+0",
      "start_pst": "2025-05-13T00:00:00",
      "end_pst": "2025-05-14T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.0782221739130434782608695652173913043478260869565",
      "contrast": "4.1217778260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/NO2/+0",
      "start_pst": "2025-05-13T00:00:00",
      "end_pst": "2025-05-14T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.0782608695652173913043478260869565217391304347826",
      "contrast": "4.1217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/NO2/+0",
      "start_pst": "2025-05-13T00:00:00",
      "end_pst": "2025-05-14T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "6.3418679",
      "contrast": "7.1581321",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/NO2/+0",
      "start_pst": "2025-05-13T00:00:00",
      "end_pst": "2025-05-14T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "6.3",
      "contrast": "7.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/NO2/+0",
      "start_pst": "2025-05-13T00:00:00",
      "end_pst": "2025-05-14T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "6.7434984625",
      "contrast": "0.5565015375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/PM25/+1",
      "start_pst": "2025-05-13T01:00:00",
      "end_pst": "2025-05-14T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "6.7458333333333333333333333333333333333333333333333",
      "contrast": "0.5541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/PM25/+1",
      "start_pst": "2025-05-13T01:00:00",
      "end_pst": "2025-05-14T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.0798276956521739130434782608695652173913043478261",
      "contrast": "4.1201723043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/NO2/+1",
      "start_pst": "2025-05-13T01:00:00",
      "end_pst": "2025-05-14T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.0782608695652173913043478260869565217391304347826",
      "contrast": "4.1217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/NO2/+1",
      "start_pst": "2025-05-13T01:00:00",
      "end_pst": "2025-05-14T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "6.3418679",
      "contrast": "7.1581321",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/NO2/+1",
      "start_pst": "2025-05-13T01:00:00",
      "end_pst": "2025-05-14T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "6.3",
      "contrast": "7.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-13/NO2/+1",
      "start_pst": "2025-05-13T01:00:00",
      "end_pst": "2025-05-14T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "5.6447004791666666666666666666666666666666666666667",
      "contrast": "0.2552995208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/PM25/-1",
      "start_pst": "2025-05-13T23:00:00",
      "end_pst": "2025-05-14T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "5.6416666666666666666666666666666666666666666666667",
      "contrast": "0.2583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/PM25/-1",
      "start_pst": "2025-05-13T23:00:00",
      "end_pst": "2025-05-14T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "3.2671063826086956521739130434782608695652173913043",
      "contrast": "4.7328936173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/NO2/-1",
      "start_pst": "2025-05-13T23:00:00",
      "end_pst": "2025-05-14T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "3.2652173913043478260869565217391304347826086956522",
      "contrast": "4.7347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/NO2/-1",
      "start_pst": "2025-05-13T23:00:00",
      "end_pst": "2025-05-14T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.6",
      "town": "5.1498032",
      "contrast": "28.4501968",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/NO2/-1",
      "start_pst": "2025-05-13T23:00:00",
      "end_pst": "2025-05-14T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.6",
      "town": "5.1",
      "contrast": "28.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/NO2/-1",
      "start_pst": "2025-05-13T23:00:00",
      "end_pst": "2025-05-14T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "5.5654968541666666666666666666666666666666666666667",
      "contrast": "0.3345031458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/PM25/+0",
      "start_pst": "2025-05-14T00:00:00",
      "end_pst": "2025-05-15T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "5.5625",
      "contrast": "0.3375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/PM25/+0",
      "start_pst": "2025-05-14T00:00:00",
      "end_pst": "2025-05-15T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "3.3539735565217391304347826086956521739130434782609",
      "contrast": "4.6460264434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/NO2/+0",
      "start_pst": "2025-05-14T00:00:00",
      "end_pst": "2025-05-15T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "3.3521739130434782608695652173913043478260869565217",
      "contrast": "4.6478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/NO2/+0",
      "start_pst": "2025-05-14T00:00:00",
      "end_pst": "2025-05-15T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.6",
      "town": "5.1498032",
      "contrast": "28.4501968",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/NO2/+0",
      "start_pst": "2025-05-14T00:00:00",
      "end_pst": "2025-05-15T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.6",
      "town": "5.1",
      "contrast": "28.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/NO2/+0",
      "start_pst": "2025-05-14T00:00:00",
      "end_pst": "2025-05-15T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "5.4828882333333333333333333333333333333333333333333",
      "contrast": "0.4171117666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/PM25/+1",
      "start_pst": "2025-05-14T01:00:00",
      "end_pst": "2025-05-15T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "5.4833333333333333333333333333333333333333333333333",
      "contrast": "0.4166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/PM25/+1",
      "start_pst": "2025-05-14T01:00:00",
      "end_pst": "2025-05-15T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "3.3923654909090909090909090909090909090909090909091",
      "contrast": "4.6076345090909090909090909090909090909090909090909",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/NO2/+1",
      "start_pst": "2025-05-14T01:00:00",
      "end_pst": "2025-05-15T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "3.3909090909090909090909090909090909090909090909091",
      "contrast": "4.6090909090909090909090909090909090909090909090909",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/NO2/+1",
      "start_pst": "2025-05-14T01:00:00",
      "end_pst": "2025-05-15T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.6",
      "town": "5.1498032",
      "contrast": "28.4501968",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/NO2/+1",
      "start_pst": "2025-05-14T01:00:00",
      "end_pst": "2025-05-15T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.6",
      "town": "5.1",
      "contrast": "28.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-14/NO2/+1",
      "start_pst": "2025-05-14T01:00:00",
      "end_pst": "2025-05-15T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "5.5170349916666666666666666666666666666666666666667",
      "contrast": "0.5829650083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/PM25/-1",
      "start_pst": "2025-05-14T23:00:00",
      "end_pst": "2025-05-15T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "5.5208333333333333333333333333333333333333333333333",
      "contrast": "0.5791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/PM25/-1",
      "start_pst": "2025-05-14T23:00:00",
      "end_pst": "2025-05-15T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "4.7474173608695652173913043478260869565217391304348",
      "contrast": "8.0525826391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/NO2/-1",
      "start_pst": "2025-05-14T23:00:00",
      "end_pst": "2025-05-15T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "4.7391304347826086956521739130434782608695652173913",
      "contrast": "8.0608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/NO2/-1",
      "start_pst": "2025-05-14T23:00:00",
      "end_pst": "2025-05-15T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "42.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "42.1",
      "town": "7.0455809",
      "contrast": "35.0544191",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/NO2/-1",
      "start_pst": "2025-05-14T23:00:00",
      "end_pst": "2025-05-15T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "42.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "42.1",
      "town": "7",
      "contrast": "35.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/NO2/-1",
      "start_pst": "2025-05-14T23:00:00",
      "end_pst": "2025-05-15T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "5.4411802041666666666666666666666666666666666666667",
      "contrast": "0.6588197958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/PM25/+0",
      "start_pst": "2025-05-15T00:00:00",
      "end_pst": "2025-05-16T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "5.4416666666666666666666666666666666666666666666667",
      "contrast": "0.6583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/PM25/+0",
      "start_pst": "2025-05-15T00:00:00",
      "end_pst": "2025-05-16T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "4.7537899181818181818181818181818181818181818181818",
      "contrast": "8.0462100818181818181818181818181818181818181818182",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/NO2/+0",
      "start_pst": "2025-05-15T00:00:00",
      "end_pst": "2025-05-16T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "4.7454545454545454545454545454545454545454545454545",
      "contrast": "8.0545454545454545454545454545454545454545454545455",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/NO2/+0",
      "start_pst": "2025-05-15T00:00:00",
      "end_pst": "2025-05-16T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "42.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "42.1",
      "town": "7.0455809",
      "contrast": "35.0544191",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/NO2/+0",
      "start_pst": "2025-05-15T00:00:00",
      "end_pst": "2025-05-16T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "42.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "42.1",
      "town": "7",
      "contrast": "35.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/NO2/+0",
      "start_pst": "2025-05-15T00:00:00",
      "end_pst": "2025-05-16T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "5.3676824125",
      "contrast": "0.7323175875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/PM25/+1",
      "start_pst": "2025-05-15T01:00:00",
      "end_pst": "2025-05-16T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "5.3666666666666666666666666666666666666666666666667",
      "contrast": "0.7333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/PM25/+1",
      "start_pst": "2025-05-15T01:00:00",
      "end_pst": "2025-05-16T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "4.7122775304347826086956521739130434782608695652174",
      "contrast": "8.0877224695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/NO2/+1",
      "start_pst": "2025-05-15T01:00:00",
      "end_pst": "2025-05-16T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "4.7043478260869565217391304347826086956521739130435",
      "contrast": "8.0956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/NO2/+1",
      "start_pst": "2025-05-15T01:00:00",
      "end_pst": "2025-05-16T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "42.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "42.1",
      "town": "7.0455809",
      "contrast": "35.0544191",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/NO2/+1",
      "start_pst": "2025-05-15T01:00:00",
      "end_pst": "2025-05-16T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "42.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "42.1",
      "town": "7",
      "contrast": "35.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-15/NO2/+1",
      "start_pst": "2025-05-15T01:00:00",
      "end_pst": "2025-05-16T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.8",
      "town": "2.7880680791666666666666666666666666666666666666667",
      "contrast": "1.0119319208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/PM25/-1",
      "start_pst": "2025-05-15T23:00:00",
      "end_pst": "2025-05-16T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.8",
      "town": "2.7833333333333333333333333333333333333333333333333",
      "contrast": "1.0166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/PM25/-1",
      "start_pst": "2025-05-15T23:00:00",
      "end_pst": "2025-05-16T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "4.8813084727272727272727272727272727272727272727273",
      "contrast": "7.2186915272727272727272727272727272727272727272727",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/NO2/-1",
      "start_pst": "2025-05-15T23:00:00",
      "end_pst": "2025-05-16T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "4.8772727272727272727272727272727272727272727272727",
      "contrast": "7.2227272727272727272727272727272727272727272727273",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/NO2/-1",
      "start_pst": "2025-05-15T23:00:00",
      "end_pst": "2025-05-16T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.1",
      "town": "8.8181362",
      "contrast": "12.2818638",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/NO2/-1",
      "start_pst": "2025-05-15T23:00:00",
      "end_pst": "2025-05-16T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.1",
      "town": "8.8",
      "contrast": "12.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/NO2/-1",
      "start_pst": "2025-05-15T23:00:00",
      "end_pst": "2025-05-16T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.8",
      "town": "2.9160764166666666666666666666666666666666666666667",
      "contrast": "0.8839235833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/PM25/+0",
      "start_pst": "2025-05-16T00:00:00",
      "end_pst": "2025-05-17T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.8",
      "town": "2.9125",
      "contrast": "0.8875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/PM25/+0",
      "start_pst": "2025-05-16T00:00:00",
      "end_pst": "2025-05-17T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "4.8336272782608695652173913043478260869565217391304",
      "contrast": "7.2663727217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/NO2/+0",
      "start_pst": "2025-05-16T00:00:00",
      "end_pst": "2025-05-17T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "4.8304347826086956521739130434782608695652173913043",
      "contrast": "7.2695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/NO2/+0",
      "start_pst": "2025-05-16T00:00:00",
      "end_pst": "2025-05-17T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.1",
      "town": "8.8181362",
      "contrast": "12.2818638",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/NO2/+0",
      "start_pst": "2025-05-16T00:00:00",
      "end_pst": "2025-05-17T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.1",
      "town": "8.8",
      "contrast": "12.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/NO2/+0",
      "start_pst": "2025-05-16T00:00:00",
      "end_pst": "2025-05-17T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.8",
      "town": "3.0298997875",
      "contrast": "0.7701002125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/PM25/+1",
      "start_pst": "2025-05-16T01:00:00",
      "end_pst": "2025-05-17T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.8",
      "town": "3.025",
      "contrast": "0.775",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/PM25/+1",
      "start_pst": "2025-05-16T01:00:00",
      "end_pst": "2025-05-17T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "4.8182419304347826086956521739130434782608695652174",
      "contrast": "7.2817580695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/NO2/+1",
      "start_pst": "2025-05-16T01:00:00",
      "end_pst": "2025-05-17T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "4.8130434782608695652173913043478260869565217391304",
      "contrast": "7.2869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/NO2/+1",
      "start_pst": "2025-05-16T01:00:00",
      "end_pst": "2025-05-17T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.1",
      "town": "8.8181362",
      "contrast": "12.2818638",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/NO2/+1",
      "start_pst": "2025-05-16T01:00:00",
      "end_pst": "2025-05-17T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.1",
      "town": "8.8",
      "contrast": "12.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-16/NO2/+1",
      "start_pst": "2025-05-16T01:00:00",
      "end_pst": "2025-05-17T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.947403775",
      "contrast": "1.752596225",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/PM25/-1",
      "start_pst": "2025-05-16T23:00:00",
      "end_pst": "2025-05-17T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.9416666666666666666666666666666666666666666666667",
      "contrast": "1.7583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/PM25/-1",
      "start_pst": "2025-05-16T23:00:00",
      "end_pst": "2025-05-17T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.7194669130434782608695652173913043478260869565217",
      "contrast": "3.2805330869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/NO2/-1",
      "start_pst": "2025-05-16T23:00:00",
      "end_pst": "2025-05-17T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.7130434782608695652173913043478260869565217391304",
      "contrast": "3.2869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/NO2/-1",
      "start_pst": "2025-05-16T23:00:00",
      "end_pst": "2025-05-17T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "5.6836729",
      "contrast": "6.7163271",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/NO2/-1",
      "start_pst": "2025-05-16T23:00:00",
      "end_pst": "2025-05-17T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "5.7",
      "contrast": "6.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/NO2/-1",
      "start_pst": "2025-05-16T23:00:00",
      "end_pst": "2025-05-17T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.795797725",
      "contrast": "1.904202275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/PM25/+0",
      "start_pst": "2025-05-17T00:00:00",
      "end_pst": "2025-05-18T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.7916666666666666666666666666666666666666666666667",
      "contrast": "1.9083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/PM25/+0",
      "start_pst": "2025-05-17T00:00:00",
      "end_pst": "2025-05-18T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.6251594347826086956521739130434782608695652173913",
      "contrast": "3.3748405652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/NO2/+0",
      "start_pst": "2025-05-17T00:00:00",
      "end_pst": "2025-05-18T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.6173913043478260869565217391304347826086956521739",
      "contrast": "3.3826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/NO2/+0",
      "start_pst": "2025-05-17T00:00:00",
      "end_pst": "2025-05-18T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "5.6836729",
      "contrast": "6.7163271",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/NO2/+0",
      "start_pst": "2025-05-17T00:00:00",
      "end_pst": "2025-05-18T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "5.7",
      "contrast": "6.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/NO2/+0",
      "start_pst": "2025-05-17T00:00:00",
      "end_pst": "2025-05-18T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.6480650166666666666666666666666666666666666666667",
      "contrast": "2.0519349833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/PM25/+1",
      "start_pst": "2025-05-17T01:00:00",
      "end_pst": "2025-05-18T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "2.6458333333333333333333333333333333333333333333333",
      "contrast": "2.0541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/PM25/+1",
      "start_pst": "2025-05-17T01:00:00",
      "end_pst": "2025-05-18T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.5233509130434782608695652173913043478260869565217",
      "contrast": "3.4766490869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/NO2/+1",
      "start_pst": "2025-05-17T01:00:00",
      "end_pst": "2025-05-18T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.5173913043478260869565217391304347826086956521739",
      "contrast": "3.4826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/NO2/+1",
      "start_pst": "2025-05-17T01:00:00",
      "end_pst": "2025-05-18T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "5.6836729",
      "contrast": "6.7163271",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/NO2/+1",
      "start_pst": "2025-05-17T01:00:00",
      "end_pst": "2025-05-18T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "5.7",
      "contrast": "6.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-17/NO2/+1",
      "start_pst": "2025-05-17T01:00:00",
      "end_pst": "2025-05-18T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.7839060",
      "contrast": "2.2160940",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/PM25/-1",
      "start_pst": "2025-05-17T23:00:00",
      "end_pst": "2025-05-18T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.7875",
      "contrast": "2.2125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/PM25/-1",
      "start_pst": "2025-05-17T23:00:00",
      "end_pst": "2025-05-18T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "1.7297315217391304347826086956521739130434782608696",
      "contrast": "2.2702684782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/NO2/-1",
      "start_pst": "2025-05-17T23:00:00",
      "end_pst": "2025-05-18T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "1.7217391304347826086956521739130434782608695652174",
      "contrast": "2.2782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/NO2/-1",
      "start_pst": "2025-05-17T23:00:00",
      "end_pst": "2025-05-18T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "5.5275359",
      "contrast": "4.9724641",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/NO2/-1",
      "start_pst": "2025-05-17T23:00:00",
      "end_pst": "2025-05-18T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "5.5",
      "contrast": "5.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/NO2/-1",
      "start_pst": "2025-05-17T23:00:00",
      "end_pst": "2025-05-18T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.9880346666666666666666666666666666666666666666667",
      "contrast": "2.0119653333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/PM25/+0",
      "start_pst": "2025-05-18T00:00:00",
      "end_pst": "2025-05-19T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.9916666666666666666666666666666666666666666666667",
      "contrast": "2.0083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/PM25/+0",
      "start_pst": "2025-05-18T00:00:00",
      "end_pst": "2025-05-19T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "1.7882277826086956521739130434782608695652173913043",
      "contrast": "2.2117722173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/NO2/+0",
      "start_pst": "2025-05-18T00:00:00",
      "end_pst": "2025-05-19T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "1.7826086956521739130434782608695652173913043478261",
      "contrast": "2.2173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/NO2/+0",
      "start_pst": "2025-05-18T00:00:00",
      "end_pst": "2025-05-19T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "5.5275359",
      "contrast": "4.9724641",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/NO2/+0",
      "start_pst": "2025-05-18T00:00:00",
      "end_pst": "2025-05-19T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "5.5",
      "contrast": "5.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/NO2/+0",
      "start_pst": "2025-05-18T00:00:00",
      "end_pst": "2025-05-19T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.1596657583333333333333333333333333333333333333333",
      "contrast": "1.8403342416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/PM25/+1",
      "start_pst": "2025-05-18T01:00:00",
      "end_pst": "2025-05-19T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.1625",
      "contrast": "1.8375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/PM25/+1",
      "start_pst": "2025-05-18T01:00:00",
      "end_pst": "2025-05-19T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "1.8542926956521739130434782608695652173913043478261",
      "contrast": "2.1457073043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/NO2/+1",
      "start_pst": "2025-05-18T01:00:00",
      "end_pst": "2025-05-19T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "1.8478260869565217391304347826086956521739130434783",
      "contrast": "2.1521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/NO2/+1",
      "start_pst": "2025-05-18T01:00:00",
      "end_pst": "2025-05-19T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "5.5275359",
      "contrast": "4.9724641",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/NO2/+1",
      "start_pst": "2025-05-18T01:00:00",
      "end_pst": "2025-05-19T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "5.5",
      "contrast": "5.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-18/NO2/+1",
      "start_pst": "2025-05-18T01:00:00",
      "end_pst": "2025-05-19T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.3467932",
      "contrast": "1.6532068",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/PM25/-1",
      "start_pst": "2025-05-18T23:00:00",
      "end_pst": "2025-05-19T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.3416666666666666666666666666666666666666666666667",
      "contrast": "1.6583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/PM25/-1",
      "start_pst": "2025-05-18T23:00:00",
      "end_pst": "2025-05-19T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.1415784956521739130434782608695652173913043478261",
      "contrast": "7.8584215043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/NO2/-1",
      "start_pst": "2025-05-18T23:00:00",
      "end_pst": "2025-05-19T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.1347826086956521739130434782608695652173913043478",
      "contrast": "7.8652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/NO2/-1",
      "start_pst": "2025-05-18T23:00:00",
      "end_pst": "2025-05-19T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.3",
      "town": "5.3865519",
      "contrast": "25.9134481",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/NO2/-1",
      "start_pst": "2025-05-18T23:00:00",
      "end_pst": "2025-05-19T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.3",
      "town": "5.4",
      "contrast": "25.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/NO2/-1",
      "start_pst": "2025-05-18T23:00:00",
      "end_pst": "2025-05-19T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.1576817",
      "contrast": "1.8423183",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/PM25/+0",
      "start_pst": "2025-05-19T00:00:00",
      "end_pst": "2025-05-20T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.15",
      "contrast": "1.85",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/PM25/+0",
      "start_pst": "2025-05-19T00:00:00",
      "end_pst": "2025-05-20T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.1235040173913043478260869565217391304347826086957",
      "contrast": "7.8764959826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/NO2/+0",
      "start_pst": "2025-05-19T00:00:00",
      "end_pst": "2025-05-20T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.1130434782608695652173913043478260869565217391304",
      "contrast": "7.8869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/NO2/+0",
      "start_pst": "2025-05-19T00:00:00",
      "end_pst": "2025-05-20T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.3",
      "town": "5.3865519",
      "contrast": "25.9134481",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/NO2/+0",
      "start_pst": "2025-05-19T00:00:00",
      "end_pst": "2025-05-20T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.3",
      "town": "5.4",
      "contrast": "25.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/NO2/+0",
      "start_pst": "2025-05-19T00:00:00",
      "end_pst": "2025-05-20T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.983896525",
      "contrast": "2.016103475",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/PM25/+1",
      "start_pst": "2025-05-19T01:00:00",
      "end_pst": "2025-05-20T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.975",
      "contrast": "2.025",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/PM25/+1",
      "start_pst": "2025-05-19T01:00:00",
      "end_pst": "2025-05-20T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.1095313217391304347826086956521739130434782608696",
      "contrast": "7.8904686782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/NO2/+1",
      "start_pst": "2025-05-19T01:00:00",
      "end_pst": "2025-05-20T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.1",
      "contrast": "7.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/NO2/+1",
      "start_pst": "2025-05-19T01:00:00",
      "end_pst": "2025-05-20T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.3",
      "town": "5.3865519",
      "contrast": "25.9134481",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/NO2/+1",
      "start_pst": "2025-05-19T01:00:00",
      "end_pst": "2025-05-20T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.3",
      "town": "5.4",
      "contrast": "25.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-19/NO2/+1",
      "start_pst": "2025-05-19T01:00:00",
      "end_pst": "2025-05-20T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "2.3120368",
      "contrast": "2.8879632",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/PM25/-1",
      "start_pst": "2025-05-19T23:00:00",
      "end_pst": "2025-05-20T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "2.3166666666666666666666666666666666666666666666667",
      "contrast": "2.8833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/PM25/-1",
      "start_pst": "2025-05-19T23:00:00",
      "end_pst": "2025-05-20T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "4.0114581347826086956521739130434782608695652173913",
      "contrast": "4.8885418652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/NO2/-1",
      "start_pst": "2025-05-19T23:00:00",
      "end_pst": "2025-05-20T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "4.0086956521739130434782608695652173913043478260870",
      "contrast": "4.8913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/NO2/-1",
      "start_pst": "2025-05-19T23:00:00",
      "end_pst": "2025-05-20T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "7.059092",
      "contrast": "12.840908",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/NO2/-1",
      "start_pst": "2025-05-19T23:00:00",
      "end_pst": "2025-05-20T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "7.1",
      "contrast": "12.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/NO2/-1",
      "start_pst": "2025-05-19T23:00:00",
      "end_pst": "2025-05-20T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "2.4506006833333333333333333333333333333333333333333",
      "contrast": "2.7493993166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/PM25/+0",
      "start_pst": "2025-05-20T00:00:00",
      "end_pst": "2025-05-21T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "2.4583333333333333333333333333333333333333333333333",
      "contrast": "2.7416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/PM25/+0",
      "start_pst": "2025-05-20T00:00:00",
      "end_pst": "2025-05-21T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "4.0709081391304347826086956521739130434782608695652",
      "contrast": "4.8290918608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/NO2/+0",
      "start_pst": "2025-05-20T00:00:00",
      "end_pst": "2025-05-21T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "4.0695652173913043478260869565217391304347826086957",
      "contrast": "4.8304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/NO2/+0",
      "start_pst": "2025-05-20T00:00:00",
      "end_pst": "2025-05-21T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "7.059092",
      "contrast": "12.840908",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/NO2/+0",
      "start_pst": "2025-05-20T00:00:00",
      "end_pst": "2025-05-21T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "7.1",
      "contrast": "12.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/NO2/+0",
      "start_pst": "2025-05-20T00:00:00",
      "end_pst": "2025-05-21T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "2.5191006833333333333333333333333333333333333333333",
      "contrast": "2.6808993166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/PM25/+1",
      "start_pst": "2025-05-20T01:00:00",
      "end_pst": "2025-05-21T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "2.5291666666666666666666666666666666666666666666667",
      "contrast": "2.6708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/PM25/+1",
      "start_pst": "2025-05-20T01:00:00",
      "end_pst": "2025-05-21T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "4.0908522260869565217391304347826086956521739130435",
      "contrast": "4.8091477739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/NO2/+1",
      "start_pst": "2025-05-20T01:00:00",
      "end_pst": "2025-05-21T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "4.0913043478260869565217391304347826086956521739130",
      "contrast": "4.8086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/NO2/+1",
      "start_pst": "2025-05-20T01:00:00",
      "end_pst": "2025-05-21T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "7.059092",
      "contrast": "12.840908",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/NO2/+1",
      "start_pst": "2025-05-20T01:00:00",
      "end_pst": "2025-05-21T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "7.1",
      "contrast": "12.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-20/NO2/+1",
      "start_pst": "2025-05-20T01:00:00",
      "end_pst": "2025-05-21T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "3.1631182625",
      "contrast": "2.1368817375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/PM25/-1",
      "start_pst": "2025-05-20T23:00:00",
      "end_pst": "2025-05-21T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "3.1666666666666666666666666666666666666666666666667",
      "contrast": "2.1333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/PM25/-1",
      "start_pst": "2025-05-20T23:00:00",
      "end_pst": "2025-05-21T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "3.9686556652173913043478260869565217391304347826087",
      "contrast": "5.3313443347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/NO2/-1",
      "start_pst": "2025-05-20T23:00:00",
      "end_pst": "2025-05-21T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "3.9695652173913043478260869565217391304347826086957",
      "contrast": "5.3304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/NO2/-1",
      "start_pst": "2025-05-20T23:00:00",
      "end_pst": "2025-05-21T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "6.7420931",
      "contrast": "11.7579069",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/NO2/-1",
      "start_pst": "2025-05-20T23:00:00",
      "end_pst": "2025-05-21T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "6.7",
      "contrast": "11.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/NO2/-1",
      "start_pst": "2025-05-20T23:00:00",
      "end_pst": "2025-05-21T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "3.1006938791666666666666666666666666666666666666667",
      "contrast": "2.1993061208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/PM25/+0",
      "start_pst": "2025-05-21T00:00:00",
      "end_pst": "2025-05-22T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "3.1041666666666666666666666666666666666666666666667",
      "contrast": "2.1958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/PM25/+0",
      "start_pst": "2025-05-21T00:00:00",
      "end_pst": "2025-05-22T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "3.9305596608695652173913043478260869565217391304348",
      "contrast": "5.3694403391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/NO2/+0",
      "start_pst": "2025-05-21T00:00:00",
      "end_pst": "2025-05-22T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "3.9304347826086956521739130434782608695652173913043",
      "contrast": "5.3695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/NO2/+0",
      "start_pst": "2025-05-21T00:00:00",
      "end_pst": "2025-05-22T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "6.7420931",
      "contrast": "11.7579069",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/NO2/+0",
      "start_pst": "2025-05-21T00:00:00",
      "end_pst": "2025-05-22T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "6.7",
      "contrast": "11.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/NO2/+0",
      "start_pst": "2025-05-21T00:00:00",
      "end_pst": "2025-05-22T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "3.1088538833333333333333333333333333333333333333333",
      "contrast": "2.1911461166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/PM25/+1",
      "start_pst": "2025-05-21T01:00:00",
      "end_pst": "2025-05-22T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "3.1125",
      "contrast": "2.1875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/PM25/+1",
      "start_pst": "2025-05-21T01:00:00",
      "end_pst": "2025-05-22T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "3.9188177956521739130434782608695652173913043478261",
      "contrast": "5.3811822043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/NO2/+1",
      "start_pst": "2025-05-21T01:00:00",
      "end_pst": "2025-05-22T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "3.9173913043478260869565217391304347826086956521739",
      "contrast": "5.3826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/NO2/+1",
      "start_pst": "2025-05-21T01:00:00",
      "end_pst": "2025-05-22T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "6.7420931",
      "contrast": "11.7579069",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/NO2/+1",
      "start_pst": "2025-05-21T01:00:00",
      "end_pst": "2025-05-22T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "6.7",
      "contrast": "11.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-21/NO2/+1",
      "start_pst": "2025-05-21T01:00:00",
      "end_pst": "2025-05-22T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "3.636424225",
      "contrast": "1.663575775",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/PM25/-1",
      "start_pst": "2025-05-21T23:00:00",
      "end_pst": "2025-05-22T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "3.6458333333333333333333333333333333333333333333333",
      "contrast": "1.6541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/PM25/-1",
      "start_pst": "2025-05-21T23:00:00",
      "end_pst": "2025-05-22T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.1351747173913043478260869565217391304347826086957",
      "contrast": "4.7648252826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/NO2/-1",
      "start_pst": "2025-05-21T23:00:00",
      "end_pst": "2025-05-22T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.1304347826086956521739130434782608695652173913043",
      "contrast": "4.7695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/NO2/-1",
      "start_pst": "2025-05-21T23:00:00",
      "end_pst": "2025-05-22T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.3",
      "town": "4.9384832",
      "contrast": "14.3615168",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/NO2/-1",
      "start_pst": "2025-05-21T23:00:00",
      "end_pst": "2025-05-22T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.3",
      "town": "4.9",
      "contrast": "14.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/NO2/-1",
      "start_pst": "2025-05-21T23:00:00",
      "end_pst": "2025-05-22T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "3.7326714416666666666666666666666666666666666666667",
      "contrast": "1.5673285583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/PM25/+0",
      "start_pst": "2025-05-22T00:00:00",
      "end_pst": "2025-05-23T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "3.7416666666666666666666666666666666666666666666667",
      "contrast": "1.5583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/PM25/+0",
      "start_pst": "2025-05-22T00:00:00",
      "end_pst": "2025-05-23T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.1868636695652173913043478260869565217391304347826",
      "contrast": "4.7131363304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/NO2/+0",
      "start_pst": "2025-05-22T00:00:00",
      "end_pst": "2025-05-23T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.1826086956521739130434782608695652173913043478261",
      "contrast": "4.7173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/NO2/+0",
      "start_pst": "2025-05-22T00:00:00",
      "end_pst": "2025-05-23T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.3",
      "town": "4.9384832",
      "contrast": "14.3615168",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/NO2/+0",
      "start_pst": "2025-05-22T00:00:00",
      "end_pst": "2025-05-23T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.3",
      "town": "4.9",
      "contrast": "14.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/NO2/+0",
      "start_pst": "2025-05-22T00:00:00",
      "end_pst": "2025-05-23T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "3.87329485",
      "contrast": "1.42670515",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/PM25/+1",
      "start_pst": "2025-05-22T01:00:00",
      "end_pst": "2025-05-23T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "3.8791666666666666666666666666666666666666666666667",
      "contrast": "1.4208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/PM25/+1",
      "start_pst": "2025-05-22T01:00:00",
      "end_pst": "2025-05-23T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.2089479260869565217391304347826086956521739130435",
      "contrast": "4.6910520739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/NO2/+1",
      "start_pst": "2025-05-22T01:00:00",
      "end_pst": "2025-05-23T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.2043478260869565217391304347826086956521739130435",
      "contrast": "4.6956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/NO2/+1",
      "start_pst": "2025-05-22T01:00:00",
      "end_pst": "2025-05-23T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.3",
      "town": "4.9384832",
      "contrast": "14.3615168",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/NO2/+1",
      "start_pst": "2025-05-22T01:00:00",
      "end_pst": "2025-05-23T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.3",
      "town": "4.9",
      "contrast": "14.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-22/NO2/+1",
      "start_pst": "2025-05-22T01:00:00",
      "end_pst": "2025-05-23T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "5.6904045916666666666666666666666666666666666666667",
      "contrast": "2.3095954083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/PM25/-1",
      "start_pst": "2025-05-22T23:00:00",
      "end_pst": "2025-05-23T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "5.6875",
      "contrast": "2.3125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/PM25/-1",
      "start_pst": "2025-05-22T23:00:00",
      "end_pst": "2025-05-23T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "4.4890930652173913043478260869565217391304347826087",
      "contrast": "4.4109069347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/NO2/-1",
      "start_pst": "2025-05-22T23:00:00",
      "end_pst": "2025-05-23T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "4.4869565217391304347826086956521739130434782608696",
      "contrast": "4.4130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/NO2/-1",
      "start_pst": "2025-05-22T23:00:00",
      "end_pst": "2025-05-23T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "6.8005252",
      "contrast": "9.0994748",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/NO2/-1",
      "start_pst": "2025-05-22T23:00:00",
      "end_pst": "2025-05-23T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "6.8",
      "contrast": "9.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/NO2/-1",
      "start_pst": "2025-05-22T23:00:00",
      "end_pst": "2025-05-23T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "5.7836567125",
      "contrast": "2.2163432875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/PM25/+0",
      "start_pst": "2025-05-23T00:00:00",
      "end_pst": "2025-05-24T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "5.7791666666666666666666666666666666666666666666667",
      "contrast": "2.2208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/PM25/+0",
      "start_pst": "2025-05-23T00:00:00",
      "end_pst": "2025-05-24T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "4.5351672869565217391304347826086956521739130434783",
      "contrast": "4.3648327130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/NO2/+0",
      "start_pst": "2025-05-23T00:00:00",
      "end_pst": "2025-05-24T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "4.5347826086956521739130434782608695652173913043478",
      "contrast": "4.3652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/NO2/+0",
      "start_pst": "2025-05-23T00:00:00",
      "end_pst": "2025-05-24T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "6.8005252",
      "contrast": "9.0994748",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/NO2/+0",
      "start_pst": "2025-05-23T00:00:00",
      "end_pst": "2025-05-24T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "6.8",
      "contrast": "9.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/NO2/+0",
      "start_pst": "2025-05-23T00:00:00",
      "end_pst": "2025-05-24T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "5.7584757166666666666666666666666666666666666666667",
      "contrast": "2.2415242833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/PM25/+1",
      "start_pst": "2025-05-23T01:00:00",
      "end_pst": "2025-05-24T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "5.7541666666666666666666666666666666666666666666667",
      "contrast": "2.2458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/PM25/+1",
      "start_pst": "2025-05-23T01:00:00",
      "end_pst": "2025-05-24T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "4.5635089826086956521739130434782608695652173913043",
      "contrast": "4.3364910173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/NO2/+1",
      "start_pst": "2025-05-23T01:00:00",
      "end_pst": "2025-05-24T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "4.5652173913043478260869565217391304347826086956522",
      "contrast": "4.3347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/NO2/+1",
      "start_pst": "2025-05-23T01:00:00",
      "end_pst": "2025-05-24T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "6.8005252",
      "contrast": "9.0994748",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/NO2/+1",
      "start_pst": "2025-05-23T01:00:00",
      "end_pst": "2025-05-24T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "6.8",
      "contrast": "9.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-23/NO2/+1",
      "start_pst": "2025-05-23T01:00:00",
      "end_pst": "2025-05-24T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.2060957",
      "contrast": "2.1939043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/PM25/-1",
      "start_pst": "2025-05-23T23:00:00",
      "end_pst": "2025-05-24T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.2",
      "contrast": "2.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/PM25/-1",
      "start_pst": "2025-05-23T23:00:00",
      "end_pst": "2025-05-24T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "4.0108213304347826086956521739130434782608695652174",
      "contrast": "7.3891786695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/NO2/-1",
      "start_pst": "2025-05-23T23:00:00",
      "end_pst": "2025-05-24T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "4.0086956521739130434782608695652173913043478260870",
      "contrast": "7.3913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/NO2/-1",
      "start_pst": "2025-05-23T23:00:00",
      "end_pst": "2025-05-24T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.2",
      "town": "10.2956896",
      "contrast": "11.9043104",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/NO2/-1",
      "start_pst": "2025-05-23T23:00:00",
      "end_pst": "2025-05-24T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.2",
      "town": "10.3",
      "contrast": "11.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/NO2/-1",
      "start_pst": "2025-05-23T23:00:00",
      "end_pst": "2025-05-24T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.2688387708333333333333333333333333333333333333333",
      "contrast": "2.1311612291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/PM25/+0",
      "start_pst": "2025-05-24T00:00:00",
      "end_pst": "2025-05-25T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.2625",
      "contrast": "2.1375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/PM25/+0",
      "start_pst": "2025-05-24T00:00:00",
      "end_pst": "2025-05-25T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "4.0621698130434782608695652173913043478260869565217",
      "contrast": "7.3378301869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/NO2/+0",
      "start_pst": "2025-05-24T00:00:00",
      "end_pst": "2025-05-25T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "4.0608695652173913043478260869565217391304347826087",
      "contrast": "7.3391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/NO2/+0",
      "start_pst": "2025-05-24T00:00:00",
      "end_pst": "2025-05-25T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.2",
      "town": "10.2956896",
      "contrast": "11.9043104",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/NO2/+0",
      "start_pst": "2025-05-24T00:00:00",
      "end_pst": "2025-05-25T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.2",
      "town": "10.3",
      "contrast": "11.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/NO2/+0",
      "start_pst": "2025-05-24T00:00:00",
      "end_pst": "2025-05-25T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.4828038708333333333333333333333333333333333333333",
      "contrast": "1.9171961291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/PM25/+1",
      "start_pst": "2025-05-24T01:00:00",
      "end_pst": "2025-05-25T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.4791666666666666666666666666666666666666666666667",
      "contrast": "1.9208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/PM25/+1",
      "start_pst": "2025-05-24T01:00:00",
      "end_pst": "2025-05-25T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "4.1112472434782608695652173913043478260869565217391",
      "contrast": "7.2887527565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/NO2/+1",
      "start_pst": "2025-05-24T01:00:00",
      "end_pst": "2025-05-25T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "4.1086956521739130434782608695652173913043478260870",
      "contrast": "7.2913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/NO2/+1",
      "start_pst": "2025-05-24T01:00:00",
      "end_pst": "2025-05-25T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.2",
      "town": "10.2956896",
      "contrast": "11.9043104",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/NO2/+1",
      "start_pst": "2025-05-24T01:00:00",
      "end_pst": "2025-05-25T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.2",
      "town": "10.3",
      "contrast": "11.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-24/NO2/+1",
      "start_pst": "2025-05-24T01:00:00",
      "end_pst": "2025-05-25T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "5.2546231041666666666666666666666666666666666666667",
      "contrast": "2.7453768958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/PM25/-1",
      "start_pst": "2025-05-24T23:00:00",
      "end_pst": "2025-05-25T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "5.2375",
      "contrast": "2.7625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/PM25/-1",
      "start_pst": "2025-05-24T23:00:00",
      "end_pst": "2025-05-25T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "3.8028839826086956521739130434782608695652173913043",
      "contrast": "7.6971160173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/NO2/-1",
      "start_pst": "2025-05-24T23:00:00",
      "end_pst": "2025-05-25T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "3.8",
      "contrast": "7.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/NO2/-1",
      "start_pst": "2025-05-24T23:00:00",
      "end_pst": "2025-05-25T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "6.4659801",
      "contrast": "11.4340199",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/NO2/-1",
      "start_pst": "2025-05-24T23:00:00",
      "end_pst": "2025-05-25T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "6.5",
      "contrast": "11.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/NO2/-1",
      "start_pst": "2025-05-24T23:00:00",
      "end_pst": "2025-05-25T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.9718336125",
      "contrast": "3.0281663875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/PM25/+0",
      "start_pst": "2025-05-25T00:00:00",
      "end_pst": "2025-05-26T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.9541666666666666666666666666666666666666666666667",
      "contrast": "3.0458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/PM25/+0",
      "start_pst": "2025-05-25T00:00:00",
      "end_pst": "2025-05-26T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "3.7086045869565217391304347826086956521739130434783",
      "contrast": "7.7913954130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/NO2/+0",
      "start_pst": "2025-05-25T00:00:00",
      "end_pst": "2025-05-26T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "3.7043478260869565217391304347826086956521739130435",
      "contrast": "7.7956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/NO2/+0",
      "start_pst": "2025-05-25T00:00:00",
      "end_pst": "2025-05-26T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "5.2033701",
      "contrast": "12.6966299",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/NO2/+0",
      "start_pst": "2025-05-25T00:00:00",
      "end_pst": "2025-05-26T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "5.2",
      "contrast": "12.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/NO2/+0",
      "start_pst": "2025-05-25T00:00:00",
      "end_pst": "2025-05-26T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.6351645166666666666666666666666666666666666666667",
      "contrast": "3.3648354833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/PM25/+1",
      "start_pst": "2025-05-25T01:00:00",
      "end_pst": "2025-05-26T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.6166666666666666666666666666666666666666666666667",
      "contrast": "3.3833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/PM25/+1",
      "start_pst": "2025-05-25T01:00:00",
      "end_pst": "2025-05-26T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "3.6689525913043478260869565217391304347826086956522",
      "contrast": "7.8310474086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/NO2/+1",
      "start_pst": "2025-05-25T01:00:00",
      "end_pst": "2025-05-26T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "3.6652173913043478260869565217391304347826086956522",
      "contrast": "7.8347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/NO2/+1",
      "start_pst": "2025-05-25T01:00:00",
      "end_pst": "2025-05-26T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "5.2033701",
      "contrast": "12.6966299",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/NO2/+1",
      "start_pst": "2025-05-25T01:00:00",
      "end_pst": "2025-05-26T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "5.2",
      "contrast": "12.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-25/NO2/+1",
      "start_pst": "2025-05-25T01:00:00",
      "end_pst": "2025-05-26T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "2.8145302125",
      "contrast": "2.7854697875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/PM25/-1",
      "start_pst": "2025-05-25T23:00:00",
      "end_pst": "2025-05-26T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "2.8125",
      "contrast": "2.7875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/PM25/-1",
      "start_pst": "2025-05-25T23:00:00",
      "end_pst": "2025-05-26T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.9637349260869565217391304347826086956521739130435",
      "contrast": "6.8362650739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/NO2/-1",
      "start_pst": "2025-05-25T23:00:00",
      "end_pst": "2025-05-26T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.9695652173913043478260869565217391304347826086957",
      "contrast": "6.8304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/NO2/-1",
      "start_pst": "2025-05-25T23:00:00",
      "end_pst": "2025-05-26T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.1",
      "town": "7.2704191",
      "contrast": "19.8295809",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/NO2/-1",
      "start_pst": "2025-05-25T23:00:00",
      "end_pst": "2025-05-26T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.1",
      "town": "7.3",
      "contrast": "19.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/NO2/-1",
      "start_pst": "2025-05-25T23:00:00",
      "end_pst": "2025-05-26T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "2.8453311708333333333333333333333333333333333333333",
      "contrast": "2.7546688291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/PM25/+0",
      "start_pst": "2025-05-26T00:00:00",
      "end_pst": "2025-05-27T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "2.8458333333333333333333333333333333333333333333333",
      "contrast": "2.7541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/PM25/+0",
      "start_pst": "2025-05-26T00:00:00",
      "end_pst": "2025-05-27T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.9017827086956521739130434782608695652173913043478",
      "contrast": "6.8982172913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/NO2/+0",
      "start_pst": "2025-05-26T00:00:00",
      "end_pst": "2025-05-27T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.9086956521739130434782608695652173913043478260870",
      "contrast": "6.8913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/NO2/+0",
      "start_pst": "2025-05-26T00:00:00",
      "end_pst": "2025-05-27T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.1",
      "town": "7.2704191",
      "contrast": "19.8295809",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/NO2/+0",
      "start_pst": "2025-05-26T00:00:00",
      "end_pst": "2025-05-27T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.1",
      "town": "7.3",
      "contrast": "19.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/NO2/+0",
      "start_pst": "2025-05-26T00:00:00",
      "end_pst": "2025-05-27T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "2.8730446666666666666666666666666666666666666666667",
      "contrast": "2.7269553333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/PM25/+1",
      "start_pst": "2025-05-26T01:00:00",
      "end_pst": "2025-05-27T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "2.875",
      "contrast": "2.725",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/PM25/+1",
      "start_pst": "2025-05-26T01:00:00",
      "end_pst": "2025-05-27T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.8839206652173913043478260869565217391304347826087",
      "contrast": "6.9160793347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/NO2/+1",
      "start_pst": "2025-05-26T01:00:00",
      "end_pst": "2025-05-27T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.8",
      "town": "3.8913043478260869565217391304347826086956521739130",
      "contrast": "6.9086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/NO2/+1",
      "start_pst": "2025-05-26T01:00:00",
      "end_pst": "2025-05-27T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.1",
      "town": "7.2704191",
      "contrast": "19.8295809",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/NO2/+1",
      "start_pst": "2025-05-26T01:00:00",
      "end_pst": "2025-05-27T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.1",
      "town": "7.3",
      "contrast": "19.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-26/NO2/+1",
      "start_pst": "2025-05-26T01:00:00",
      "end_pst": "2025-05-27T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.9193665666666666666666666666666666666666666666667",
      "contrast": "1.0806334333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/PM25/-1",
      "start_pst": "2025-05-26T23:00:00",
      "end_pst": "2025-05-27T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.9208333333333333333333333333333333333333333333333",
      "contrast": "1.0791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/PM25/-1",
      "start_pst": "2025-05-26T23:00:00",
      "end_pst": "2025-05-27T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.7944899869565217391304347826086956521739130434783",
      "contrast": "4.6055100130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/NO2/-1",
      "start_pst": "2025-05-26T23:00:00",
      "end_pst": "2025-05-27T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.8043478260869565217391304347826086956521739130435",
      "contrast": "4.5956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/NO2/-1",
      "start_pst": "2025-05-26T23:00:00",
      "end_pst": "2025-05-27T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "10.705018",
      "contrast": "6.394982",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/NO2/-1",
      "start_pst": "2025-05-26T23:00:00",
      "end_pst": "2025-05-27T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "10.7",
      "contrast": "6.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/NO2/-1",
      "start_pst": "2025-05-26T23:00:00",
      "end_pst": "2025-05-27T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.8892035291666666666666666666666666666666666666667",
      "contrast": "1.1107964708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/PM25/+0",
      "start_pst": "2025-05-27T00:00:00",
      "end_pst": "2025-05-28T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.8875",
      "contrast": "1.1125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/PM25/+0",
      "start_pst": "2025-05-27T00:00:00",
      "end_pst": "2025-05-28T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.7031749869565217391304347826086956521739130434783",
      "contrast": "4.6968250130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/NO2/+0",
      "start_pst": "2025-05-27T00:00:00",
      "end_pst": "2025-05-28T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.7130434782608695652173913043478260869565217391304",
      "contrast": "4.6869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/NO2/+0",
      "start_pst": "2025-05-27T00:00:00",
      "end_pst": "2025-05-28T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "10.705018",
      "contrast": "6.394982",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/NO2/+0",
      "start_pst": "2025-05-27T00:00:00",
      "end_pst": "2025-05-28T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "10.7",
      "contrast": "6.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/NO2/+0",
      "start_pst": "2025-05-27T00:00:00",
      "end_pst": "2025-05-28T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.8762009833333333333333333333333333333333333333333",
      "contrast": "1.1237990166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/PM25/+1",
      "start_pst": "2025-05-27T01:00:00",
      "end_pst": "2025-05-28T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "3.8708333333333333333333333333333333333333333333333",
      "contrast": "1.1291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/PM25/+1",
      "start_pst": "2025-05-27T01:00:00",
      "end_pst": "2025-05-28T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.5781374217391304347826086956521739130434782608696",
      "contrast": "4.8218625782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/NO2/+1",
      "start_pst": "2025-05-27T01:00:00",
      "end_pst": "2025-05-28T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.5869565217391304347826086956521739130434782608696",
      "contrast": "4.8130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/NO2/+1",
      "start_pst": "2025-05-27T01:00:00",
      "end_pst": "2025-05-28T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "10.705018",
      "contrast": "6.394982",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/NO2/+1",
      "start_pst": "2025-05-27T01:00:00",
      "end_pst": "2025-05-28T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "10.7",
      "contrast": "6.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-27/NO2/+1",
      "start_pst": "2025-05-27T01:00:00",
      "end_pst": "2025-05-28T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "4.3127362625",
      "contrast": "2.3872637375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/PM25/-1",
      "start_pst": "2025-05-27T23:00:00",
      "end_pst": "2025-05-28T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "4.3125",
      "contrast": "2.3875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/PM25/-1",
      "start_pst": "2025-05-27T23:00:00",
      "end_pst": "2025-05-28T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.1",
      "town": "3.6579683434782608695652173913043478260869565217391",
      "contrast": "7.4420316565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/NO2/-1",
      "start_pst": "2025-05-27T23:00:00",
      "end_pst": "2025-05-28T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.1",
      "town": "3.6521739130434782608695652173913043478260869565217",
      "contrast": "7.4478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/NO2/-1",
      "start_pst": "2025-05-27T23:00:00",
      "end_pst": "2025-05-28T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "8.2007771",
      "contrast": "18.1992229",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/NO2/-1",
      "start_pst": "2025-05-27T23:00:00",
      "end_pst": "2025-05-28T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "8.2",
      "contrast": "18.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/NO2/-1",
      "start_pst": "2025-05-27T23:00:00",
      "end_pst": "2025-05-28T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "4.4759683",
      "contrast": "2.2240317",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/PM25/+0",
      "start_pst": "2025-05-28T00:00:00",
      "end_pst": "2025-05-29T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "4.4791666666666666666666666666666666666666666666667",
      "contrast": "2.2208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/PM25/+0",
      "start_pst": "2025-05-28T00:00:00",
      "end_pst": "2025-05-29T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.1",
      "town": "3.9002676913043478260869565217391304347826086956522",
      "contrast": "7.1997323086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/NO2/+0",
      "start_pst": "2025-05-28T00:00:00",
      "end_pst": "2025-05-29T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.1",
      "town": "3.8913043478260869565217391304347826086956521739130",
      "contrast": "7.2086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/NO2/+0",
      "start_pst": "2025-05-28T00:00:00",
      "end_pst": "2025-05-29T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "8.2007771",
      "contrast": "18.1992229",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/NO2/+0",
      "start_pst": "2025-05-28T00:00:00",
      "end_pst": "2025-05-29T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "8.2",
      "contrast": "18.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/NO2/+0",
      "start_pst": "2025-05-28T00:00:00",
      "end_pst": "2025-05-29T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "4.6276210166666666666666666666666666666666666666667",
      "contrast": "2.0723789833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/PM25/+1",
      "start_pst": "2025-05-28T01:00:00",
      "end_pst": "2025-05-29T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "4.6333333333333333333333333333333333333333333333333",
      "contrast": "2.0666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/PM25/+1",
      "start_pst": "2025-05-28T01:00:00",
      "end_pst": "2025-05-29T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.1",
      "town": "4.1298922217391304347826086956521739130434782608696",
      "contrast": "6.9701077782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/NO2/+1",
      "start_pst": "2025-05-28T01:00:00",
      "end_pst": "2025-05-29T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.1",
      "town": "4.1217391304347826086956521739130434782608695652174",
      "contrast": "6.9782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/NO2/+1",
      "start_pst": "2025-05-28T01:00:00",
      "end_pst": "2025-05-29T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "8.2007771",
      "contrast": "18.1992229",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/NO2/+1",
      "start_pst": "2025-05-28T01:00:00",
      "end_pst": "2025-05-29T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "8.2",
      "contrast": "18.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-28/NO2/+1",
      "start_pst": "2025-05-28T01:00:00",
      "end_pst": "2025-05-29T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.2998793166666666666666666666666666666666666666667",
      "contrast": "2.0001206833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/PM25/-1",
      "start_pst": "2025-05-28T23:00:00",
      "end_pst": "2025-05-29T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.3125",
      "contrast": "1.9875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/PM25/-1",
      "start_pst": "2025-05-28T23:00:00",
      "end_pst": "2025-05-29T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "4.2701691260869565217391304347826086956521739130435",
      "contrast": "5.6298308739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/NO2/-1",
      "start_pst": "2025-05-28T23:00:00",
      "end_pst": "2025-05-29T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "4.2652173913043478260869565217391304347826086956522",
      "contrast": "5.6347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/NO2/-1",
      "start_pst": "2025-05-28T23:00:00",
      "end_pst": "2025-05-29T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "6.345293",
      "contrast": "13.754707",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/NO2/-1",
      "start_pst": "2025-05-28T23:00:00",
      "end_pst": "2025-05-29T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "6.3",
      "contrast": "13.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/NO2/-1",
      "start_pst": "2025-05-28T23:00:00",
      "end_pst": "2025-05-29T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.3252454458333333333333333333333333333333333333333",
      "contrast": "1.9747545541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/PM25/+0",
      "start_pst": "2025-05-29T00:00:00",
      "end_pst": "2025-05-30T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.3375",
      "contrast": "1.9625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/PM25/+0",
      "start_pst": "2025-05-29T00:00:00",
      "end_pst": "2025-05-30T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "4.1416341260869565217391304347826086956521739130435",
      "contrast": "5.7583658739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/NO2/+0",
      "start_pst": "2025-05-29T00:00:00",
      "end_pst": "2025-05-30T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "4.1391304347826086956521739130434782608695652173913",
      "contrast": "5.7608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/NO2/+0",
      "start_pst": "2025-05-29T00:00:00",
      "end_pst": "2025-05-30T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "6.1202631",
      "contrast": "13.9797369",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/NO2/+0",
      "start_pst": "2025-05-29T00:00:00",
      "end_pst": "2025-05-30T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "6.1",
      "contrast": "14.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/NO2/+0",
      "start_pst": "2025-05-29T00:00:00",
      "end_pst": "2025-05-30T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.3177863208333333333333333333333333333333333333333",
      "contrast": "1.9822136791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/PM25/+1",
      "start_pst": "2025-05-29T01:00:00",
      "end_pst": "2025-05-30T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.3291666666666666666666666666666666666666666666667",
      "contrast": "1.9708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/PM25/+1",
      "start_pst": "2025-05-29T01:00:00",
      "end_pst": "2025-05-30T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "4.0166116826086956521739130434782608695652173913043",
      "contrast": "5.8833883173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/NO2/+1",
      "start_pst": "2025-05-29T01:00:00",
      "end_pst": "2025-05-30T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "4.0130434782608695652173913043478260869565217391304",
      "contrast": "5.8869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/NO2/+1",
      "start_pst": "2025-05-29T01:00:00",
      "end_pst": "2025-05-30T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "6.1202631",
      "contrast": "13.9797369",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/NO2/+1",
      "start_pst": "2025-05-29T01:00:00",
      "end_pst": "2025-05-30T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "6.1",
      "contrast": "14.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-29/NO2/+1",
      "start_pst": "2025-05-29T01:00:00",
      "end_pst": "2025-05-30T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "5.7090059666666666666666666666666666666666666666667",
      "contrast": "-0.5090059666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/PM25/-1",
      "start_pst": "2025-05-29T23:00:00",
      "end_pst": "2025-05-30T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "5.7083333333333333333333333333333333333333333333333",
      "contrast": "-0.5083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/PM25/-1",
      "start_pst": "2025-05-29T23:00:00",
      "end_pst": "2025-05-30T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "3.0120787043478260869565217391304347826086956521739",
      "contrast": "6.4879212956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/NO2/-1",
      "start_pst": "2025-05-29T23:00:00",
      "end_pst": "2025-05-30T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "3.0086956521739130434782608695652173913043478260870",
      "contrast": "6.4913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/NO2/-1",
      "start_pst": "2025-05-29T23:00:00",
      "end_pst": "2025-05-30T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "5.5158811",
      "contrast": "14.8841189",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/NO2/-1",
      "start_pst": "2025-05-29T23:00:00",
      "end_pst": "2025-05-30T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "5.5",
      "contrast": "14.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/NO2/-1",
      "start_pst": "2025-05-29T23:00:00",
      "end_pst": "2025-05-30T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "5.5503662958333333333333333333333333333333333333333",
      "contrast": "-0.3503662958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/PM25/+0",
      "start_pst": "2025-05-30T00:00:00",
      "end_pst": "2025-05-31T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "5.55",
      "contrast": "-0.35",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/PM25/+0",
      "start_pst": "2025-05-30T00:00:00",
      "end_pst": "2025-05-31T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "2.8894569217391304347826086956521739130434782608696",
      "contrast": "6.6105430782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/NO2/+0",
      "start_pst": "2025-05-30T00:00:00",
      "end_pst": "2025-05-31T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "2.8869565217391304347826086956521739130434782608696",
      "contrast": "6.6130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/NO2/+0",
      "start_pst": "2025-05-30T00:00:00",
      "end_pst": "2025-05-31T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "5.5158811",
      "contrast": "14.8841189",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/NO2/+0",
      "start_pst": "2025-05-30T00:00:00",
      "end_pst": "2025-05-31T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "5.5",
      "contrast": "14.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/NO2/+0",
      "start_pst": "2025-05-30T00:00:00",
      "end_pst": "2025-05-31T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "5.4083355375",
      "contrast": "-0.2083355375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/PM25/+1",
      "start_pst": "2025-05-30T01:00:00",
      "end_pst": "2025-05-31T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "5.4083333333333333333333333333333333333333333333333",
      "contrast": "-0.2083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/PM25/+1",
      "start_pst": "2025-05-30T01:00:00",
      "end_pst": "2025-05-31T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "2.7824054",
      "contrast": "6.7175946",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/NO2/+1",
      "start_pst": "2025-05-30T01:00:00",
      "end_pst": "2025-05-31T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "2.7782608695652173913043478260869565217391304347826",
      "contrast": "6.7217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/NO2/+1",
      "start_pst": "2025-05-30T01:00:00",
      "end_pst": "2025-05-31T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "5.5158811",
      "contrast": "14.8841189",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/NO2/+1",
      "start_pst": "2025-05-30T01:00:00",
      "end_pst": "2025-05-31T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "5.5",
      "contrast": "14.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-30/NO2/+1",
      "start_pst": "2025-05-30T01:00:00",
      "end_pst": "2025-05-31T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-31",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "2.8465181166666666666666666666666666666666666666667",
      "contrast": "2.0534818833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/PM25/-1",
      "start_pst": "2025-05-30T23:00:00",
      "end_pst": "2025-05-31T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-31",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "2.85",
      "contrast": "2.05",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/PM25/-1",
      "start_pst": "2025-05-30T23:00:00",
      "end_pst": "2025-05-31T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-31",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "2.1862329652173913043478260869565217391304347826087",
      "contrast": "7.9137670347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/NO2/-1",
      "start_pst": "2025-05-30T23:00:00",
      "end_pst": "2025-05-31T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-31",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "2.1826086956521739130434782608695652173913043478261",
      "contrast": "7.9173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/NO2/-1",
      "start_pst": "2025-05-30T23:00:00",
      "end_pst": "2025-05-31T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.9",
      "town": "5.1378932",
      "contrast": "13.7621068",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/NO2/-1",
      "start_pst": "2025-05-30T23:00:00",
      "end_pst": "2025-05-31T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.9",
      "town": "5.1",
      "contrast": "13.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/NO2/-1",
      "start_pst": "2025-05-30T23:00:00",
      "end_pst": "2025-05-31T23:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "2.86203845",
      "contrast": "2.03796155",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/PM25/+0",
      "start_pst": "2025-05-31T00:00:00",
      "end_pst": "2025-06-01T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "2.8625",
      "contrast": "2.0375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/PM25/+0",
      "start_pst": "2025-05-31T00:00:00",
      "end_pst": "2025-06-01T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-31",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "2.2967991869565217391304347826086956521739130434783",
      "contrast": "7.8032008130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/NO2/+0",
      "start_pst": "2025-05-31T00:00:00",
      "end_pst": "2025-06-01T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-31",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "2.2913043478260869565217391304347826086956521739130",
      "contrast": "7.8086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/NO2/+0",
      "start_pst": "2025-05-31T00:00:00",
      "end_pst": "2025-06-01T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.9",
      "town": "5.1378932",
      "contrast": "13.7621068",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/NO2/+0",
      "start_pst": "2025-05-31T00:00:00",
      "end_pst": "2025-06-01T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.9",
      "town": "5.1",
      "contrast": "13.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/NO2/+0",
      "start_pst": "2025-05-31T00:00:00",
      "end_pst": "2025-06-01T00:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "2.8683575375",
      "contrast": "2.0316424625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/PM25/+1",
      "start_pst": "2025-05-31T01:00:00",
      "end_pst": "2025-06-01T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.9",
      "town": "2.8666666666666666666666666666666666666666666666667",
      "contrast": "2.0333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/PM25/+1",
      "start_pst": "2025-05-31T01:00:00",
      "end_pst": "2025-06-01T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-05-31",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "2.3520426217391304347826086956521739130434782608696",
      "contrast": "7.7479573782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/NO2/+1",
      "start_pst": "2025-05-31T01:00:00",
      "end_pst": "2025-06-01T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-31",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "2.3478260869565217391304347826086956521739130434783",
      "contrast": "7.7521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/NO2/+1",
      "start_pst": "2025-05-31T01:00:00",
      "end_pst": "2025-06-01T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-05-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.9",
      "town": "5.1378932",
      "contrast": "13.7621068",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/NO2/+1",
      "start_pst": "2025-05-31T01:00:00",
      "end_pst": "2025-06-01T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-05-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.9",
      "town": "5.1",
      "contrast": "13.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-05-31/NO2/+1",
      "start_pst": "2025-05-31T01:00:00",
      "end_pst": "2025-06-01T01:00:00",
      "onsite_source": {
        "month": "2025-05",
        "date_printed": "5/31/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/07/WLNG-AQMS-Monthly-Report-2025-05-May-2025_v.01.pdf",
        "source_pdf_path": "work/research-emissions/aqms-may2025.pdf",
        "source_pdf_sha256": "2c70c3b5c5931614fc9db5761c4c16f8ee021ab7c639120ce28e740caab5b0f1",
        "source_csv_path": "work/onsite-town-may2025/onsite/table-b1-air-native.csv",
        "source_csv_sha256": "9fbfa3ca0813759525b22b163d992fafdfa6d72d7d53bbdc74c2a3e05584c98d",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "4.5809952791666666666666666666666666666666666666667",
      "contrast": "1.2190047208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/PM25/-1",
      "start_pst": "2025-05-31T23:00:00",
      "end_pst": "2025-06-01T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "4.575",
      "contrast": "1.225",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/PM25/-1",
      "start_pst": "2025-05-31T23:00:00",
      "end_pst": "2025-06-01T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.1746617",
      "contrast": "4.4253383",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/NO2/-1",
      "start_pst": "2025-05-31T23:00:00",
      "end_pst": "2025-06-01T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.1695652173913043478260869565217391304347826086957",
      "contrast": "4.4304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/NO2/-1",
      "start_pst": "2025-05-31T23:00:00",
      "end_pst": "2025-06-01T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.4",
      "town": "6.819306",
      "contrast": "7.580694",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/NO2/-1",
      "start_pst": "2025-05-31T23:00:00",
      "end_pst": "2025-06-01T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.4",
      "town": "6.8",
      "contrast": "7.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/NO2/-1",
      "start_pst": "2025-05-31T23:00:00",
      "end_pst": "2025-06-01T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "4.6613517",
      "contrast": "1.1386483",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/PM25/+0",
      "start_pst": "2025-06-01T00:00:00",
      "end_pst": "2025-06-02T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "4.6583333333333333333333333333333333333333333333333",
      "contrast": "1.1416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/PM25/+0",
      "start_pst": "2025-06-01T00:00:00",
      "end_pst": "2025-06-02T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.2104629565217391304347826086956521739130434782609",
      "contrast": "4.3895370434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/NO2/+0",
      "start_pst": "2025-06-01T00:00:00",
      "end_pst": "2025-06-02T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.2043478260869565217391304347826086956521739130435",
      "contrast": "4.3956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/NO2/+0",
      "start_pst": "2025-06-01T00:00:00",
      "end_pst": "2025-06-02T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.4",
      "town": "6.819306",
      "contrast": "7.580694",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/NO2/+0",
      "start_pst": "2025-06-01T00:00:00",
      "end_pst": "2025-06-02T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.4",
      "town": "6.8",
      "contrast": "7.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/NO2/+0",
      "start_pst": "2025-06-01T00:00:00",
      "end_pst": "2025-06-02T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "4.7418557",
      "contrast": "1.0581443",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/PM25/+1",
      "start_pst": "2025-06-01T01:00:00",
      "end_pst": "2025-06-02T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "4.7416666666666666666666666666666666666666666666667",
      "contrast": "1.0583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/PM25/+1",
      "start_pst": "2025-06-01T01:00:00",
      "end_pst": "2025-06-02T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.2712280869565217391304347826086956521739130434783",
      "contrast": "4.3287719130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/NO2/+1",
      "start_pst": "2025-06-01T01:00:00",
      "end_pst": "2025-06-02T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.2652173913043478260869565217391304347826086956522",
      "contrast": "4.3347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/NO2/+1",
      "start_pst": "2025-06-01T01:00:00",
      "end_pst": "2025-06-02T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.4",
      "town": "6.819306",
      "contrast": "7.580694",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/NO2/+1",
      "start_pst": "2025-06-01T01:00:00",
      "end_pst": "2025-06-02T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.4",
      "town": "6.8",
      "contrast": "7.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-01/NO2/+1",
      "start_pst": "2025-06-01T01:00:00",
      "end_pst": "2025-06-02T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/1/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "4.608379725",
      "contrast": "1.991620275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/PM25/-1",
      "start_pst": "2025-06-01T23:00:00",
      "end_pst": "2025-06-02T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "4.6125",
      "contrast": "1.9875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/PM25/-1",
      "start_pst": "2025-06-01T23:00:00",
      "end_pst": "2025-06-02T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.0745913043478260869565217391304347826086956521739",
      "contrast": "5.3254086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/NO2/-1",
      "start_pst": "2025-06-01T23:00:00",
      "end_pst": "2025-06-02T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.0782608695652173913043478260869565217391304347826",
      "contrast": "5.3217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/NO2/-1",
      "start_pst": "2025-06-01T23:00:00",
      "end_pst": "2025-06-02T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.1",
      "town": "5.641274",
      "contrast": "10.458726",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/NO2/-1",
      "start_pst": "2025-06-01T23:00:00",
      "end_pst": "2025-06-02T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.1",
      "town": "5.6",
      "contrast": "10.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/NO2/-1",
      "start_pst": "2025-06-01T23:00:00",
      "end_pst": "2025-06-02T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "4.5908467583333333333333333333333333333333333333333",
      "contrast": "2.0091532416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/PM25/+0",
      "start_pst": "2025-06-02T00:00:00",
      "end_pst": "2025-06-03T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "4.5916666666666666666666666666666666666666666666667",
      "contrast": "2.0083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/PM25/+0",
      "start_pst": "2025-06-02T00:00:00",
      "end_pst": "2025-06-03T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.0730443478260869565217391304347826086956521739130",
      "contrast": "5.3269556521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/NO2/+0",
      "start_pst": "2025-06-02T00:00:00",
      "end_pst": "2025-06-03T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.0782608695652173913043478260869565217391304347826",
      "contrast": "5.3217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/NO2/+0",
      "start_pst": "2025-06-02T00:00:00",
      "end_pst": "2025-06-03T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.1",
      "town": "5.641274",
      "contrast": "10.458726",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/NO2/+0",
      "start_pst": "2025-06-02T00:00:00",
      "end_pst": "2025-06-03T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.1",
      "town": "5.6",
      "contrast": "10.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/NO2/+0",
      "start_pst": "2025-06-02T00:00:00",
      "end_pst": "2025-06-03T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "4.5861371791666666666666666666666666666666666666667",
      "contrast": "2.0138628208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/PM25/+1",
      "start_pst": "2025-06-02T01:00:00",
      "end_pst": "2025-06-03T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "4.5875",
      "contrast": "2.0125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/PM25/+1",
      "start_pst": "2025-06-02T01:00:00",
      "end_pst": "2025-06-03T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.0350890434782608695652173913043478260869565217391",
      "contrast": "5.3649109565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/NO2/+1",
      "start_pst": "2025-06-02T01:00:00",
      "end_pst": "2025-06-03T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.0391304347826086956521739130434782608695652173913",
      "contrast": "5.3608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/NO2/+1",
      "start_pst": "2025-06-02T01:00:00",
      "end_pst": "2025-06-03T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.1",
      "town": "5.641274",
      "contrast": "10.458726",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/NO2/+1",
      "start_pst": "2025-06-02T01:00:00",
      "end_pst": "2025-06-03T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.1",
      "town": "5.6",
      "contrast": "10.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-02/NO2/+1",
      "start_pst": "2025-06-02T01:00:00",
      "end_pst": "2025-06-03T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/2/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "5.0035967083333333333333333333333333333333333333333",
      "contrast": "3.7964032916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/PM25/-1",
      "start_pst": "2025-06-02T23:00:00",
      "end_pst": "2025-06-03T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "4.9958333333333333333333333333333333333333333333333",
      "contrast": "3.8041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/PM25/-1",
      "start_pst": "2025-06-02T23:00:00",
      "end_pst": "2025-06-03T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "3.0270336086956521739130434782608695652173913043478",
      "contrast": "4.7729663913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/NO2/-1",
      "start_pst": "2025-06-02T23:00:00",
      "end_pst": "2025-06-03T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "3.0260869565217391304347826086956521739130434782609",
      "contrast": "4.7739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/NO2/-1",
      "start_pst": "2025-06-02T23:00:00",
      "end_pst": "2025-06-03T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.6",
      "town": "4.319529",
      "contrast": "9.280471",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/NO2/-1",
      "start_pst": "2025-06-02T23:00:00",
      "end_pst": "2025-06-03T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.6",
      "town": "4.3",
      "contrast": "9.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/NO2/-1",
      "start_pst": "2025-06-02T23:00:00",
      "end_pst": "2025-06-03T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "4.9411368041666666666666666666666666666666666666667",
      "contrast": "3.8588631958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/PM25/+0",
      "start_pst": "2025-06-03T00:00:00",
      "end_pst": "2025-06-04T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "4.9333333333333333333333333333333333333333333333333",
      "contrast": "3.8666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/PM25/+0",
      "start_pst": "2025-06-03T00:00:00",
      "end_pst": "2025-06-04T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "2.9670103043478260869565217391304347826086956521739",
      "contrast": "4.8329896956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/NO2/+0",
      "start_pst": "2025-06-03T00:00:00",
      "end_pst": "2025-06-04T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "2.9652173913043478260869565217391304347826086956522",
      "contrast": "4.8347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/NO2/+0",
      "start_pst": "2025-06-03T00:00:00",
      "end_pst": "2025-06-04T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.6",
      "town": "4.319529",
      "contrast": "9.280471",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/NO2/+0",
      "start_pst": "2025-06-03T00:00:00",
      "end_pst": "2025-06-04T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.6",
      "town": "4.3",
      "contrast": "9.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/NO2/+0",
      "start_pst": "2025-06-03T00:00:00",
      "end_pst": "2025-06-04T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "4.8987804708333333333333333333333333333333333333333",
      "contrast": "3.9012195291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/PM25/+1",
      "start_pst": "2025-06-03T01:00:00",
      "end_pst": "2025-06-04T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "4.8916666666666666666666666666666666666666666666667",
      "contrast": "3.9083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/PM25/+1",
      "start_pst": "2025-06-03T01:00:00",
      "end_pst": "2025-06-04T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "2.9641864347826086956521739130434782608695652173913",
      "contrast": "4.8358135652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/NO2/+1",
      "start_pst": "2025-06-03T01:00:00",
      "end_pst": "2025-06-04T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "2.9652173913043478260869565217391304347826086956522",
      "contrast": "4.8347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/NO2/+1",
      "start_pst": "2025-06-03T01:00:00",
      "end_pst": "2025-06-04T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.6",
      "town": "4.319529",
      "contrast": "9.280471",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/NO2/+1",
      "start_pst": "2025-06-03T01:00:00",
      "end_pst": "2025-06-04T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.6",
      "town": "4.3",
      "contrast": "9.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-03/NO2/+1",
      "start_pst": "2025-06-03T01:00:00",
      "end_pst": "2025-06-04T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/3/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.49895765",
      "contrast": "3.30104235",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/PM25/-1",
      "start_pst": "2025-06-03T23:00:00",
      "end_pst": "2025-06-04T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.5041666666666666666666666666666666666666666666667",
      "contrast": "3.2958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/PM25/-1",
      "start_pst": "2025-06-03T23:00:00",
      "end_pst": "2025-06-04T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.2965323043478260869565217391304347826086956521739",
      "contrast": "4.2034676956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/NO2/-1",
      "start_pst": "2025-06-03T23:00:00",
      "end_pst": "2025-06-04T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.2869565217391304347826086956521739130434782608696",
      "contrast": "4.2130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/NO2/-1",
      "start_pst": "2025-06-03T23:00:00",
      "end_pst": "2025-06-04T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.7",
      "town": "9.019117",
      "contrast": "7.680883",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/NO2/-1",
      "start_pst": "2025-06-03T23:00:00",
      "end_pst": "2025-06-04T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.7",
      "town": "9",
      "contrast": "7.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/NO2/-1",
      "start_pst": "2025-06-03T23:00:00",
      "end_pst": "2025-06-04T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.4797263875",
      "contrast": "3.3202736125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/PM25/+0",
      "start_pst": "2025-06-04T00:00:00",
      "end_pst": "2025-06-05T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.4875",
      "contrast": "3.3125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/PM25/+0",
      "start_pst": "2025-06-04T00:00:00",
      "end_pst": "2025-06-05T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.4597695652173913043478260869565217391304347826087",
      "contrast": "4.0402304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/NO2/+0",
      "start_pst": "2025-06-04T00:00:00",
      "end_pst": "2025-06-05T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.4521739130434782608695652173913043478260869565217",
      "contrast": "4.0478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/NO2/+0",
      "start_pst": "2025-06-04T00:00:00",
      "end_pst": "2025-06-05T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.7",
      "town": "9.019117",
      "contrast": "7.680883",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/NO2/+0",
      "start_pst": "2025-06-04T00:00:00",
      "end_pst": "2025-06-05T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.7",
      "town": "9",
      "contrast": "7.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/NO2/+0",
      "start_pst": "2025-06-04T00:00:00",
      "end_pst": "2025-06-05T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.460148925",
      "contrast": "3.339851075",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/PM25/+1",
      "start_pst": "2025-06-04T01:00:00",
      "end_pst": "2025-06-05T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.4666666666666666666666666666666666666666666666667",
      "contrast": "3.3333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/PM25/+1",
      "start_pst": "2025-06-04T01:00:00",
      "end_pst": "2025-06-05T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.5549276086956521739130434782608695652173913043478",
      "contrast": "3.9450723913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/NO2/+1",
      "start_pst": "2025-06-04T01:00:00",
      "end_pst": "2025-06-05T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.5434782608695652173913043478260869565217391304348",
      "contrast": "3.9565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/NO2/+1",
      "start_pst": "2025-06-04T01:00:00",
      "end_pst": "2025-06-05T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.7",
      "town": "9.019117",
      "contrast": "7.680883",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/NO2/+1",
      "start_pst": "2025-06-04T01:00:00",
      "end_pst": "2025-06-05T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.7",
      "town": "9",
      "contrast": "7.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-04/NO2/+1",
      "start_pst": "2025-06-04T01:00:00",
      "end_pst": "2025-06-05T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/4/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.7963456541666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/PM25/-1",
      "start_pst": "2025-06-04T23:00:00",
      "end_pst": "2025-06-05T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.7875",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/PM25/-1",
      "start_pst": "2025-06-04T23:00:00",
      "end_pst": "2025-06-05T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.1810412608695652173913043478260869565217391304348",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/NO2/-1",
      "start_pst": "2025-06-04T23:00:00",
      "end_pst": "2025-06-05T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.1869565217391304347826086956521739130434782608696",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/NO2/-1",
      "start_pst": "2025-06-04T23:00:00",
      "end_pst": "2025-06-05T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.05769",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/NO2/-1",
      "start_pst": "2025-06-04T23:00:00",
      "end_pst": "2025-06-05T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/NO2/-1",
      "start_pst": "2025-06-04T23:00:00",
      "end_pst": "2025-06-05T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.8569215791666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/PM25/+0",
      "start_pst": "2025-06-05T00:00:00",
      "end_pst": "2025-06-06T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.8458333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/PM25/+0",
      "start_pst": "2025-06-05T00:00:00",
      "end_pst": "2025-06-06T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.2760462173913043478260869565217391304347826086957",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/NO2/+0",
      "start_pst": "2025-06-05T00:00:00",
      "end_pst": "2025-06-06T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.2826086956521739130434782608695652173913043478261",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/NO2/+0",
      "start_pst": "2025-06-05T00:00:00",
      "end_pst": "2025-06-06T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.05769",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/NO2/+0",
      "start_pst": "2025-06-05T00:00:00",
      "end_pst": "2025-06-06T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/NO2/+0",
      "start_pst": "2025-06-05T00:00:00",
      "end_pst": "2025-06-06T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.9436837875",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/PM25/+1",
      "start_pst": "2025-06-05T01:00:00",
      "end_pst": "2025-06-06T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.9333333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/PM25/+1",
      "start_pst": "2025-06-05T01:00:00",
      "end_pst": "2025-06-06T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.4223215217391304347826086956521739130434782608696",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/NO2/+1",
      "start_pst": "2025-06-05T01:00:00",
      "end_pst": "2025-06-06T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.4304347826086956521739130434782608695652173913043",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/NO2/+1",
      "start_pst": "2025-06-05T01:00:00",
      "end_pst": "2025-06-06T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.05769",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/NO2/+1",
      "start_pst": "2025-06-05T01:00:00",
      "end_pst": "2025-06-06T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-06-05/NO2/+1",
      "start_pst": "2025-06-05T01:00:00",
      "end_pst": "2025-06-06T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/5/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "4.57346335",
      "contrast": "1.32653665",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/PM25/-1",
      "start_pst": "2025-06-05T23:00:00",
      "end_pst": "2025-06-06T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "4.5708333333333333333333333333333333333333333333333",
      "contrast": "1.3291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/PM25/-1",
      "start_pst": "2025-06-05T23:00:00",
      "end_pst": "2025-06-06T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.2",
      "town": "4.1102545652173913043478260869565217391304347826087",
      "contrast": "13.089745434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/NO2/-1",
      "start_pst": "2025-06-05T23:00:00",
      "end_pst": "2025-06-06T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.2",
      "town": "4.1",
      "contrast": "13.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/NO2/-1",
      "start_pst": "2025-06-05T23:00:00",
      "end_pst": "2025-06-06T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.2",
      "town": "8.458594",
      "contrast": "19.741406",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/NO2/-1",
      "start_pst": "2025-06-05T23:00:00",
      "end_pst": "2025-06-06T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.2",
      "town": "8.5",
      "contrast": "19.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/NO2/-1",
      "start_pst": "2025-06-05T23:00:00",
      "end_pst": "2025-06-06T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "4.6147123083333333333333333333333333333333333333333",
      "contrast": "1.2852876916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/PM25/+0",
      "start_pst": "2025-06-06T00:00:00",
      "end_pst": "2025-06-07T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "4.6125",
      "contrast": "1.2875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/PM25/+0",
      "start_pst": "2025-06-06T00:00:00",
      "end_pst": "2025-06-07T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.2",
      "town": "4.0306661739130434782608695652173913043478260869565",
      "contrast": "13.169333826086956521739130434782608695652173913044",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/NO2/+0",
      "start_pst": "2025-06-06T00:00:00",
      "end_pst": "2025-06-07T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.2",
      "town": "4.0173913043478260869565217391304347826086956521739",
      "contrast": "13.182608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/NO2/+0",
      "start_pst": "2025-06-06T00:00:00",
      "end_pst": "2025-06-07T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.2",
      "town": "7.807115",
      "contrast": "20.392885",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/NO2/+0",
      "start_pst": "2025-06-06T00:00:00",
      "end_pst": "2025-06-07T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.2",
      "town": "7.8",
      "contrast": "20.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/NO2/+0",
      "start_pst": "2025-06-06T00:00:00",
      "end_pst": "2025-06-07T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "4.6555764375",
      "contrast": "1.2444235625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/PM25/+1",
      "start_pst": "2025-06-06T01:00:00",
      "end_pst": "2025-06-07T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "4.65",
      "contrast": "1.25",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/PM25/+1",
      "start_pst": "2025-06-06T01:00:00",
      "end_pst": "2025-06-07T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.2",
      "town": "3.8590094090909090909090909090909090909090909090909",
      "contrast": "13.340990590909090909090909090909090909090909090909",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/NO2/+1",
      "start_pst": "2025-06-06T01:00:00",
      "end_pst": "2025-06-07T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.2",
      "town": "3.8454545454545454545454545454545454545454545454545",
      "contrast": "13.354545454545454545454545454545454545454545454546",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/NO2/+1",
      "start_pst": "2025-06-06T01:00:00",
      "end_pst": "2025-06-07T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.2",
      "town": "6.628061",
      "contrast": "21.571939",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/NO2/+1",
      "start_pst": "2025-06-06T01:00:00",
      "end_pst": "2025-06-07T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.2",
      "town": "6.6",
      "contrast": "21.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-06/NO2/+1",
      "start_pst": "2025-06-06T01:00:00",
      "end_pst": "2025-06-07T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/6/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.849728925",
      "contrast": "2.150271075",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-07/PM25/-1",
      "start_pst": "2025-06-06T23:00:00",
      "end_pst": "2025-06-07T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.8541666666666666666666666666666666666666666666667",
      "contrast": "2.1458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-07/PM25/-1",
      "start_pst": "2025-06-06T23:00:00",
      "end_pst": "2025-06-07T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 17,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-07/NO2/-1",
      "start_pst": "2025-06-06T23:00:00",
      "end_pst": "2025-06-07T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 17,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-07/NO2/-1",
      "start_pst": "2025-06-06T23:00:00",
      "end_pst": "2025-06-07T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 17,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-07/NO2/-1",
      "start_pst": "2025-06-06T23:00:00",
      "end_pst": "2025-06-07T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 17,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-07/NO2/-1",
      "start_pst": "2025-06-06T23:00:00",
      "end_pst": "2025-06-07T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.9466045125",
      "contrast": "2.0533954875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-07/PM25/+0",
      "start_pst": "2025-06-07T00:00:00",
      "end_pst": "2025-06-08T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.9541666666666666666666666666666666666666666666667",
      "contrast": "2.0458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-07/PM25/+0",
      "start_pst": "2025-06-07T00:00:00",
      "end_pst": "2025-06-08T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-07/NO2/+0",
      "start_pst": "2025-06-07T00:00:00",
      "end_pst": "2025-06-08T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-07/NO2/+0",
      "start_pst": "2025-06-07T00:00:00",
      "end_pst": "2025-06-08T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-07/NO2/+0",
      "start_pst": "2025-06-07T00:00:00",
      "end_pst": "2025-06-08T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-07/NO2/+0",
      "start_pst": "2025-06-07T00:00:00",
      "end_pst": "2025-06-08T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.0457545166666666666666666666666666666666666666667",
      "contrast": "1.9542454833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-07/PM25/+1",
      "start_pst": "2025-06-07T01:00:00",
      "end_pst": "2025-06-08T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.0541666666666666666666666666666666666666666666667",
      "contrast": "1.9458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-07/PM25/+1",
      "start_pst": "2025-06-07T01:00:00",
      "end_pst": "2025-06-08T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-07/NO2/+1",
      "start_pst": "2025-06-07T01:00:00",
      "end_pst": "2025-06-08T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-07/NO2/+1",
      "start_pst": "2025-06-07T01:00:00",
      "end_pst": "2025-06-08T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-07/NO2/+1",
      "start_pst": "2025-06-07T01:00:00",
      "end_pst": "2025-06-08T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-07/NO2/+1",
      "start_pst": "2025-06-07T01:00:00",
      "end_pst": "2025-06-08T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/7/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 10,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/PM25/-1",
      "start_pst": "2025-06-07T23:00:00",
      "end_pst": "2025-06-08T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 10,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/PM25/-1",
      "start_pst": "2025-06-07T23:00:00",
      "end_pst": "2025-06-08T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/NO2/-1",
      "start_pst": "2025-06-07T23:00:00",
      "end_pst": "2025-06-08T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/NO2/-1",
      "start_pst": "2025-06-07T23:00:00",
      "end_pst": "2025-06-08T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/NO2/-1",
      "start_pst": "2025-06-07T23:00:00",
      "end_pst": "2025-06-08T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/NO2/-1",
      "start_pst": "2025-06-07T23:00:00",
      "end_pst": "2025-06-08T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 9,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/PM25/+0",
      "start_pst": "2025-06-08T00:00:00",
      "end_pst": "2025-06-09T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 9,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/PM25/+0",
      "start_pst": "2025-06-08T00:00:00",
      "end_pst": "2025-06-09T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/NO2/+0",
      "start_pst": "2025-06-08T00:00:00",
      "end_pst": "2025-06-09T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/NO2/+0",
      "start_pst": "2025-06-08T00:00:00",
      "end_pst": "2025-06-09T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/NO2/+0",
      "start_pst": "2025-06-08T00:00:00",
      "end_pst": "2025-06-09T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/NO2/+0",
      "start_pst": "2025-06-08T00:00:00",
      "end_pst": "2025-06-09T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 8,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/PM25/+1",
      "start_pst": "2025-06-08T01:00:00",
      "end_pst": "2025-06-09T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 8,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/PM25/+1",
      "start_pst": "2025-06-08T01:00:00",
      "end_pst": "2025-06-09T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/NO2/+1",
      "start_pst": "2025-06-08T01:00:00",
      "end_pst": "2025-06-09T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/NO2/+1",
      "start_pst": "2025-06-08T01:00:00",
      "end_pst": "2025-06-09T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/NO2/+1",
      "start_pst": "2025-06-08T01:00:00",
      "end_pst": "2025-06-09T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-08/NO2/+1",
      "start_pst": "2025-06-08T01:00:00",
      "end_pst": "2025-06-09T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/8/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 9,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/PM25/-1",
      "start_pst": "2025-06-08T23:00:00",
      "end_pst": "2025-06-09T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 9,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/PM25/-1",
      "start_pst": "2025-06-08T23:00:00",
      "end_pst": "2025-06-09T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 1,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/NO2/-1",
      "start_pst": "2025-06-08T23:00:00",
      "end_pst": "2025-06-09T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 1,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/NO2/-1",
      "start_pst": "2025-06-08T23:00:00",
      "end_pst": "2025-06-09T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 1,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/NO2/-1",
      "start_pst": "2025-06-08T23:00:00",
      "end_pst": "2025-06-09T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 1,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/NO2/-1",
      "start_pst": "2025-06-08T23:00:00",
      "end_pst": "2025-06-09T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 10,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/PM25/+0",
      "start_pst": "2025-06-09T00:00:00",
      "end_pst": "2025-06-10T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 10,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/PM25/+0",
      "start_pst": "2025-06-09T00:00:00",
      "end_pst": "2025-06-10T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 2,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/NO2/+0",
      "start_pst": "2025-06-09T00:00:00",
      "end_pst": "2025-06-10T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 2,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/NO2/+0",
      "start_pst": "2025-06-09T00:00:00",
      "end_pst": "2025-06-10T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 2,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/NO2/+0",
      "start_pst": "2025-06-09T00:00:00",
      "end_pst": "2025-06-10T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 2,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/NO2/+0",
      "start_pst": "2025-06-09T00:00:00",
      "end_pst": "2025-06-10T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/PM25/+1",
      "start_pst": "2025-06-09T01:00:00",
      "end_pst": "2025-06-10T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 11,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/PM25/+1",
      "start_pst": "2025-06-09T01:00:00",
      "end_pst": "2025-06-10T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 3,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/NO2/+1",
      "start_pst": "2025-06-09T01:00:00",
      "end_pst": "2025-06-10T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 3,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/NO2/+1",
      "start_pst": "2025-06-09T01:00:00",
      "end_pst": "2025-06-10T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 3,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/NO2/+1",
      "start_pst": "2025-06-09T01:00:00",
      "end_pst": "2025-06-10T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 3,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-06-09/NO2/+1",
      "start_pst": "2025-06-09T01:00:00",
      "end_pst": "2025-06-10T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/9/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "7.73367945",
      "contrast": "6.76632055",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/PM25/-1",
      "start_pst": "2025-06-09T23:00:00",
      "end_pst": "2025-06-10T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "7.7333333333333333333333333333333333333333333333333",
      "contrast": "6.7666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/PM25/-1",
      "start_pst": "2025-06-09T23:00:00",
      "end_pst": "2025-06-10T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "4.5951690869565217391304347826086956521739130434783",
      "contrast": "9.1048309130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/NO2/-1",
      "start_pst": "2025-06-09T23:00:00",
      "end_pst": "2025-06-10T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "4.5913043478260869565217391304347826086956521739130",
      "contrast": "9.1086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/NO2/-1",
      "start_pst": "2025-06-09T23:00:00",
      "end_pst": "2025-06-10T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.5",
      "town": "7.179109",
      "contrast": "18.320891",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/NO2/-1",
      "start_pst": "2025-06-09T23:00:00",
      "end_pst": "2025-06-10T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.5",
      "town": "7.2",
      "contrast": "18.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/NO2/-1",
      "start_pst": "2025-06-09T23:00:00",
      "end_pst": "2025-06-10T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "7.787779575",
      "contrast": "6.712220425",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/PM25/+0",
      "start_pst": "2025-06-10T00:00:00",
      "end_pst": "2025-06-11T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "7.7875",
      "contrast": "6.7125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/PM25/+0",
      "start_pst": "2025-06-10T00:00:00",
      "end_pst": "2025-06-11T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "4.5711865217391304347826086956521739130434782608696",
      "contrast": "9.1288134782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/NO2/+0",
      "start_pst": "2025-06-10T00:00:00",
      "end_pst": "2025-06-11T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "4.5652173913043478260869565217391304347826086956522",
      "contrast": "9.1347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/NO2/+0",
      "start_pst": "2025-06-10T00:00:00",
      "end_pst": "2025-06-11T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.5",
      "town": "6.788512",
      "contrast": "18.711488",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/NO2/+0",
      "start_pst": "2025-06-10T00:00:00",
      "end_pst": "2025-06-11T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.5",
      "town": "6.8",
      "contrast": "18.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/NO2/+0",
      "start_pst": "2025-06-10T00:00:00",
      "end_pst": "2025-06-11T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "7.8822505333333333333333333333333333333333333333333",
      "contrast": "6.6177494666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/PM25/+1",
      "start_pst": "2025-06-10T01:00:00",
      "end_pst": "2025-06-11T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "7.8833333333333333333333333333333333333333333333333",
      "contrast": "6.6166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/PM25/+1",
      "start_pst": "2025-06-10T01:00:00",
      "end_pst": "2025-06-11T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "4.6103773913043478260869565217391304347826086956522",
      "contrast": "9.0896226086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/NO2/+1",
      "start_pst": "2025-06-10T01:00:00",
      "end_pst": "2025-06-11T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "4.6043478260869565217391304347826086956521739130435",
      "contrast": "9.0956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/NO2/+1",
      "start_pst": "2025-06-10T01:00:00",
      "end_pst": "2025-06-11T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.5",
      "town": "6.788512",
      "contrast": "18.711488",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/NO2/+1",
      "start_pst": "2025-06-10T01:00:00",
      "end_pst": "2025-06-11T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.5",
      "town": "6.8",
      "contrast": "18.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-10/NO2/+1",
      "start_pst": "2025-06-10T01:00:00",
      "end_pst": "2025-06-11T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/10/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "9.4984169041666666666666666666666666666666666666667",
      "contrast": "3.6015830958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/PM25/-1",
      "start_pst": "2025-06-10T23:00:00",
      "end_pst": "2025-06-11T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "9.5041666666666666666666666666666666666666666666667",
      "contrast": "3.5958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/PM25/-1",
      "start_pst": "2025-06-10T23:00:00",
      "end_pst": "2025-06-11T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "4.4510817391304347826086956521739130434782608695652",
      "contrast": "11.148918260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/NO2/-1",
      "start_pst": "2025-06-10T23:00:00",
      "end_pst": "2025-06-11T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "4.4478260869565217391304347826086956521739130434783",
      "contrast": "11.152173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/NO2/-1",
      "start_pst": "2025-06-10T23:00:00",
      "end_pst": "2025-06-11T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "44.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "44.6",
      "town": "8.923867",
      "contrast": "35.676133",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/NO2/-1",
      "start_pst": "2025-06-10T23:00:00",
      "end_pst": "2025-06-11T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "44.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "44.6",
      "town": "8.9",
      "contrast": "35.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/NO2/-1",
      "start_pst": "2025-06-10T23:00:00",
      "end_pst": "2025-06-11T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "9.6595443916666666666666666666666666666666666666667",
      "contrast": "3.4404556083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/PM25/+0",
      "start_pst": "2025-06-11T00:00:00",
      "end_pst": "2025-06-12T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "9.6666666666666666666666666666666666666666666666667",
      "contrast": "3.4333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/PM25/+0",
      "start_pst": "2025-06-11T00:00:00",
      "end_pst": "2025-06-12T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "4.3279253043478260869565217391304347826086956521739",
      "contrast": "11.272074695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/NO2/+0",
      "start_pst": "2025-06-11T00:00:00",
      "end_pst": "2025-06-12T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "4.3260869565217391304347826086956521739130434782609",
      "contrast": "11.273913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/NO2/+0",
      "start_pst": "2025-06-11T00:00:00",
      "end_pst": "2025-06-12T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "44.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "44.6",
      "town": "8.923867",
      "contrast": "35.676133",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/NO2/+0",
      "start_pst": "2025-06-11T00:00:00",
      "end_pst": "2025-06-12T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "44.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "44.6",
      "town": "8.9",
      "contrast": "35.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/NO2/+0",
      "start_pst": "2025-06-11T00:00:00",
      "end_pst": "2025-06-12T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "9.8316883083333333333333333333333333333333333333333",
      "contrast": "3.2683116916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/PM25/+1",
      "start_pst": "2025-06-11T01:00:00",
      "end_pst": "2025-06-12T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "9.8375",
      "contrast": "3.2625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/PM25/+1",
      "start_pst": "2025-06-11T01:00:00",
      "end_pst": "2025-06-12T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "4.3072897826086956521739130434782608695652173913043",
      "contrast": "11.292710217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/NO2/+1",
      "start_pst": "2025-06-11T01:00:00",
      "end_pst": "2025-06-12T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "4.3086956521739130434782608695652173913043478260870",
      "contrast": "11.291304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/NO2/+1",
      "start_pst": "2025-06-11T01:00:00",
      "end_pst": "2025-06-12T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "44.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "44.6",
      "town": "8.923867",
      "contrast": "35.676133",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/NO2/+1",
      "start_pst": "2025-06-11T01:00:00",
      "end_pst": "2025-06-12T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "44.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "44.6",
      "town": "8.9",
      "contrast": "35.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-11/NO2/+1",
      "start_pst": "2025-06-11T01:00:00",
      "end_pst": "2025-06-12T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/11/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "10.221669779166666666666666666666666666666666666667",
      "contrast": "0.178330220833333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/PM25/-1",
      "start_pst": "2025-06-11T23:00:00",
      "end_pst": "2025-06-12T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "10.225",
      "contrast": "0.175",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/PM25/-1",
      "start_pst": "2025-06-11T23:00:00",
      "end_pst": "2025-06-12T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.6",
      "town": "5.5283469130434782608695652173913043478260869565217",
      "contrast": "8.0716530869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/NO2/-1",
      "start_pst": "2025-06-11T23:00:00",
      "end_pst": "2025-06-12T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.6",
      "town": "5.5391304347826086956521739130434782608695652173913",
      "contrast": "8.0608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/NO2/-1",
      "start_pst": "2025-06-11T23:00:00",
      "end_pst": "2025-06-12T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.4",
      "town": "7.946379",
      "contrast": "20.453621",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/NO2/-1",
      "start_pst": "2025-06-11T23:00:00",
      "end_pst": "2025-06-12T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.4",
      "town": "7.9",
      "contrast": "20.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/NO2/-1",
      "start_pst": "2025-06-11T23:00:00",
      "end_pst": "2025-06-12T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "10.1850500",
      "contrast": "0.2149500",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/PM25/+0",
      "start_pst": "2025-06-12T00:00:00",
      "end_pst": "2025-06-13T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "10.1875",
      "contrast": "0.2125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/PM25/+0",
      "start_pst": "2025-06-12T00:00:00",
      "end_pst": "2025-06-13T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.6",
      "town": "5.6432773913043478260869565217391304347826086956522",
      "contrast": "7.9567226086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/NO2/+0",
      "start_pst": "2025-06-12T00:00:00",
      "end_pst": "2025-06-13T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.6",
      "town": "5.6521739130434782608695652173913043478260869565217",
      "contrast": "7.9478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/NO2/+0",
      "start_pst": "2025-06-12T00:00:00",
      "end_pst": "2025-06-13T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.4",
      "town": "7.946379",
      "contrast": "20.453621",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/NO2/+0",
      "start_pst": "2025-06-12T00:00:00",
      "end_pst": "2025-06-13T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.4",
      "town": "7.9",
      "contrast": "20.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/NO2/+0",
      "start_pst": "2025-06-12T00:00:00",
      "end_pst": "2025-06-13T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "10.173271566666666666666666666666666666666666666667",
      "contrast": "0.226728433333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/PM25/+1",
      "start_pst": "2025-06-12T01:00:00",
      "end_pst": "2025-06-13T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "10.175",
      "contrast": "0.225",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/PM25/+1",
      "start_pst": "2025-06-12T01:00:00",
      "end_pst": "2025-06-13T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.6",
      "town": "5.7543180869565217391304347826086956521739130434783",
      "contrast": "7.8456819130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/NO2/+1",
      "start_pst": "2025-06-12T01:00:00",
      "end_pst": "2025-06-13T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.6",
      "town": "5.7608695652173913043478260869565217391304347826087",
      "contrast": "7.8391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/NO2/+1",
      "start_pst": "2025-06-12T01:00:00",
      "end_pst": "2025-06-13T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.4",
      "town": "7.946379",
      "contrast": "20.453621",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/NO2/+1",
      "start_pst": "2025-06-12T01:00:00",
      "end_pst": "2025-06-13T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.4",
      "town": "7.9",
      "contrast": "20.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-12/NO2/+1",
      "start_pst": "2025-06-12T01:00:00",
      "end_pst": "2025-06-13T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/12/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.4",
      "town": "5.7166365875",
      "contrast": "3.6833634125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/PM25/-1",
      "start_pst": "2025-06-12T23:00:00",
      "end_pst": "2025-06-13T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.4",
      "town": "5.7166666666666666666666666666666666666666666666667",
      "contrast": "3.6833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/PM25/-1",
      "start_pst": "2025-06-12T23:00:00",
      "end_pst": "2025-06-13T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "4.4065616521739130434782608695652173913043478260870",
      "contrast": "10.193438347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/NO2/-1",
      "start_pst": "2025-06-12T23:00:00",
      "end_pst": "2025-06-13T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "4.4",
      "contrast": "10.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/NO2/-1",
      "start_pst": "2025-06-12T23:00:00",
      "end_pst": "2025-06-13T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.7",
      "town": "7.425508",
      "contrast": "17.274492",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/NO2/-1",
      "start_pst": "2025-06-12T23:00:00",
      "end_pst": "2025-06-13T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.7",
      "town": "7.4",
      "contrast": "17.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/NO2/-1",
      "start_pst": "2025-06-12T23:00:00",
      "end_pst": "2025-06-13T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.4",
      "town": "5.5944435875",
      "contrast": "3.8055564125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/PM25/+0",
      "start_pst": "2025-06-13T00:00:00",
      "end_pst": "2025-06-14T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.4",
      "town": "5.5916666666666666666666666666666666666666666666667",
      "contrast": "3.8083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/PM25/+0",
      "start_pst": "2025-06-13T00:00:00",
      "end_pst": "2025-06-14T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "4.3141882608695652173913043478260869565217391304348",
      "contrast": "10.285811739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/NO2/+0",
      "start_pst": "2025-06-13T00:00:00",
      "end_pst": "2025-06-14T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "4.3086956521739130434782608695652173913043478260870",
      "contrast": "10.291304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/NO2/+0",
      "start_pst": "2025-06-13T00:00:00",
      "end_pst": "2025-06-14T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.7",
      "town": "7.425508",
      "contrast": "17.274492",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/NO2/+0",
      "start_pst": "2025-06-13T00:00:00",
      "end_pst": "2025-06-14T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.7",
      "town": "7.4",
      "contrast": "17.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/NO2/+0",
      "start_pst": "2025-06-13T00:00:00",
      "end_pst": "2025-06-14T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.4",
      "town": "5.4547401958333333333333333333333333333333333333333",
      "contrast": "3.9452598041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/PM25/+1",
      "start_pst": "2025-06-13T01:00:00",
      "end_pst": "2025-06-14T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.4",
      "town": "5.4541666666666666666666666666666666666666666666667",
      "contrast": "3.9458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/PM25/+1",
      "start_pst": "2025-06-13T01:00:00",
      "end_pst": "2025-06-14T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "4.153381",
      "contrast": "10.446619",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/NO2/+1",
      "start_pst": "2025-06-13T01:00:00",
      "end_pst": "2025-06-14T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "4.1478260869565217391304347826086956521739130434783",
      "contrast": "10.452173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/NO2/+1",
      "start_pst": "2025-06-13T01:00:00",
      "end_pst": "2025-06-14T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.7",
      "town": "7.425508",
      "contrast": "17.274492",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/NO2/+1",
      "start_pst": "2025-06-13T01:00:00",
      "end_pst": "2025-06-14T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.7",
      "town": "7.4",
      "contrast": "17.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-13/NO2/+1",
      "start_pst": "2025-06-13T01:00:00",
      "end_pst": "2025-06-14T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/13/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "6.0869346708333333333333333333333333333333333333333",
      "contrast": "2.9130653291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/PM25/-1",
      "start_pst": "2025-06-13T23:00:00",
      "end_pst": "2025-06-14T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "6.0875",
      "contrast": "2.9125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/PM25/-1",
      "start_pst": "2025-06-13T23:00:00",
      "end_pst": "2025-06-14T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "4.4671296956521739130434782608695652173913043478261",
      "contrast": "10.032870304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/NO2/-1",
      "start_pst": "2025-06-13T23:00:00",
      "end_pst": "2025-06-14T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "4.4695652173913043478260869565217391304347826086957",
      "contrast": "10.030434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/NO2/-1",
      "start_pst": "2025-06-13T23:00:00",
      "end_pst": "2025-06-14T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "8.38293",
      "contrast": "18.01707",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/NO2/-1",
      "start_pst": "2025-06-13T23:00:00",
      "end_pst": "2025-06-14T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "8.4",
      "contrast": "18.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/NO2/-1",
      "start_pst": "2025-06-13T23:00:00",
      "end_pst": "2025-06-14T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "6.1520500041666666666666666666666666666666666666667",
      "contrast": "2.8479499958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/PM25/+0",
      "start_pst": "2025-06-14T00:00:00",
      "end_pst": "2025-06-15T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "6.1541666666666666666666666666666666666666666666667",
      "contrast": "2.8458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/PM25/+0",
      "start_pst": "2025-06-14T00:00:00",
      "end_pst": "2025-06-15T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "4.5308453043478260869565217391304347826086956521739",
      "contrast": "9.9691546956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/NO2/+0",
      "start_pst": "2025-06-14T00:00:00",
      "end_pst": "2025-06-15T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "4.5347826086956521739130434782608695652173913043478",
      "contrast": "9.9652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/NO2/+0",
      "start_pst": "2025-06-14T00:00:00",
      "end_pst": "2025-06-15T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "8.38293",
      "contrast": "18.01707",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/NO2/+0",
      "start_pst": "2025-06-14T00:00:00",
      "end_pst": "2025-06-15T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "8.4",
      "contrast": "18.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/NO2/+0",
      "start_pst": "2025-06-14T00:00:00",
      "end_pst": "2025-06-15T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "6.1711224166666666666666666666666666666666666666667",
      "contrast": "2.8288775833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/PM25/+1",
      "start_pst": "2025-06-14T01:00:00",
      "end_pst": "2025-06-15T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "6.1708333333333333333333333333333333333333333333333",
      "contrast": "2.8291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/PM25/+1",
      "start_pst": "2025-06-14T01:00:00",
      "end_pst": "2025-06-15T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "4.5936399130434782608695652173913043478260869565217",
      "contrast": "9.9063600869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/NO2/+1",
      "start_pst": "2025-06-14T01:00:00",
      "end_pst": "2025-06-15T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "4.6",
      "contrast": "9.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/NO2/+1",
      "start_pst": "2025-06-14T01:00:00",
      "end_pst": "2025-06-15T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "8.38293",
      "contrast": "18.01707",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/NO2/+1",
      "start_pst": "2025-06-14T01:00:00",
      "end_pst": "2025-06-15T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "8.4",
      "contrast": "18.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-14/NO2/+1",
      "start_pst": "2025-06-14T01:00:00",
      "end_pst": "2025-06-15T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/14/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "5.6600130625",
      "contrast": "2.7399869375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/PM25/-1",
      "start_pst": "2025-06-14T23:00:00",
      "end_pst": "2025-06-15T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "5.6583333333333333333333333333333333333333333333333",
      "contrast": "2.7416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/PM25/-1",
      "start_pst": "2025-06-14T23:00:00",
      "end_pst": "2025-06-15T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "4.7409306521739130434782608695652173913043478260870",
      "contrast": "8.0590693478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/NO2/-1",
      "start_pst": "2025-06-14T23:00:00",
      "end_pst": "2025-06-15T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "4.7347826086956521739130434782608695652173913043478",
      "contrast": "8.0652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/NO2/-1",
      "start_pst": "2025-06-14T23:00:00",
      "end_pst": "2025-06-15T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "12.85416",
      "contrast": "13.54584",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/NO2/-1",
      "start_pst": "2025-06-14T23:00:00",
      "end_pst": "2025-06-15T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "12.9",
      "contrast": "13.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/NO2/-1",
      "start_pst": "2025-06-14T23:00:00",
      "end_pst": "2025-06-15T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "5.6575387333333333333333333333333333333333333333333",
      "contrast": "2.7424612666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/PM25/+0",
      "start_pst": "2025-06-15T00:00:00",
      "end_pst": "2025-06-16T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "5.6541666666666666666666666666666666666666666666667",
      "contrast": "2.7458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/PM25/+0",
      "start_pst": "2025-06-15T00:00:00",
      "end_pst": "2025-06-16T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "4.7442283478260869565217391304347826086956521739130",
      "contrast": "8.0557716521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/NO2/+0",
      "start_pst": "2025-06-15T00:00:00",
      "end_pst": "2025-06-16T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "4.7391304347826086956521739130434782608695652173913",
      "contrast": "8.0608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/NO2/+0",
      "start_pst": "2025-06-15T00:00:00",
      "end_pst": "2025-06-16T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "12.85416",
      "contrast": "13.54584",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/NO2/+0",
      "start_pst": "2025-06-15T00:00:00",
      "end_pst": "2025-06-16T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "12.9",
      "contrast": "13.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/NO2/+0",
      "start_pst": "2025-06-15T00:00:00",
      "end_pst": "2025-06-16T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "5.6861336041666666666666666666666666666666666666667",
      "contrast": "2.7138663958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/PM25/+1",
      "start_pst": "2025-06-15T01:00:00",
      "end_pst": "2025-06-16T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "5.6833333333333333333333333333333333333333333333333",
      "contrast": "2.7166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/PM25/+1",
      "start_pst": "2025-06-15T01:00:00",
      "end_pst": "2025-06-16T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "4.6360586956521739130434782608695652173913043478261",
      "contrast": "8.1639413043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/NO2/+1",
      "start_pst": "2025-06-15T01:00:00",
      "end_pst": "2025-06-16T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "4.6304347826086956521739130434782608695652173913043",
      "contrast": "8.1695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/NO2/+1",
      "start_pst": "2025-06-15T01:00:00",
      "end_pst": "2025-06-16T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "12.85416",
      "contrast": "13.54584",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/NO2/+1",
      "start_pst": "2025-06-15T01:00:00",
      "end_pst": "2025-06-16T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "12.9",
      "contrast": "13.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-15/NO2/+1",
      "start_pst": "2025-06-15T01:00:00",
      "end_pst": "2025-06-16T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/15/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "6.512826625",
      "contrast": "1.987173375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/PM25/-1",
      "start_pst": "2025-06-15T23:00:00",
      "end_pst": "2025-06-16T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "6.5083333333333333333333333333333333333333333333333",
      "contrast": "1.9916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/PM25/-1",
      "start_pst": "2025-06-15T23:00:00",
      "end_pst": "2025-06-16T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "5.0934259565217391304347826086956521739130434782609",
      "contrast": "8.3065740434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/NO2/-1",
      "start_pst": "2025-06-15T23:00:00",
      "end_pst": "2025-06-16T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "5.1043478260869565217391304347826086956521739130435",
      "contrast": "8.2956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/NO2/-1",
      "start_pst": "2025-06-15T23:00:00",
      "end_pst": "2025-06-16T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.6",
      "town": "9.137735",
      "contrast": "16.462265",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/NO2/-1",
      "start_pst": "2025-06-15T23:00:00",
      "end_pst": "2025-06-16T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.6",
      "town": "9.1",
      "contrast": "16.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/NO2/-1",
      "start_pst": "2025-06-15T23:00:00",
      "end_pst": "2025-06-16T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "6.4921362416666666666666666666666666666666666666667",
      "contrast": "2.0078637583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/PM25/+0",
      "start_pst": "2025-06-16T00:00:00",
      "end_pst": "2025-06-17T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "6.4916666666666666666666666666666666666666666666667",
      "contrast": "2.0083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/PM25/+0",
      "start_pst": "2025-06-16T00:00:00",
      "end_pst": "2025-06-17T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "5.071435",
      "contrast": "8.328565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/NO2/+0",
      "start_pst": "2025-06-16T00:00:00",
      "end_pst": "2025-06-17T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "5.0782608695652173913043478260869565217391304347826",
      "contrast": "8.3217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/NO2/+0",
      "start_pst": "2025-06-16T00:00:00",
      "end_pst": "2025-06-17T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.6",
      "town": "9.137735",
      "contrast": "16.462265",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/NO2/+0",
      "start_pst": "2025-06-16T00:00:00",
      "end_pst": "2025-06-17T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.6",
      "town": "9.1",
      "contrast": "16.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/NO2/+0",
      "start_pst": "2025-06-16T00:00:00",
      "end_pst": "2025-06-17T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "6.4389296583333333333333333333333333333333333333333",
      "contrast": "2.0610703416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/PM25/+1",
      "start_pst": "2025-06-16T01:00:00",
      "end_pst": "2025-06-17T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "6.4375",
      "contrast": "2.0625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/PM25/+1",
      "start_pst": "2025-06-16T01:00:00",
      "end_pst": "2025-06-17T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "5.1131118260869565217391304347826086956521739130435",
      "contrast": "8.2868881739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/NO2/+1",
      "start_pst": "2025-06-16T01:00:00",
      "end_pst": "2025-06-17T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "5.1173913043478260869565217391304347826086956521739",
      "contrast": "8.2826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/NO2/+1",
      "start_pst": "2025-06-16T01:00:00",
      "end_pst": "2025-06-17T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.6",
      "town": "9.137735",
      "contrast": "16.462265",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/NO2/+1",
      "start_pst": "2025-06-16T01:00:00",
      "end_pst": "2025-06-17T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.6",
      "town": "9.1",
      "contrast": "16.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-16/NO2/+1",
      "start_pst": "2025-06-16T01:00:00",
      "end_pst": "2025-06-17T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/16/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "3.7575955458333333333333333333333333333333333333333",
      "contrast": "3.9424044541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/PM25/-1",
      "start_pst": "2025-06-16T23:00:00",
      "end_pst": "2025-06-17T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "3.7625",
      "contrast": "3.9375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/PM25/-1",
      "start_pst": "2025-06-16T23:00:00",
      "end_pst": "2025-06-17T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.0",
      "town": "5.2556236956521739130434782608695652173913043478261",
      "contrast": "9.7443763043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/NO2/-1",
      "start_pst": "2025-06-16T23:00:00",
      "end_pst": "2025-06-17T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.0",
      "town": "5.2521739130434782608695652173913043478260869565217",
      "contrast": "9.7478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/NO2/-1",
      "start_pst": "2025-06-16T23:00:00",
      "end_pst": "2025-06-17T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.6",
      "town": "9.15592",
      "contrast": "15.44408",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/NO2/-1",
      "start_pst": "2025-06-16T23:00:00",
      "end_pst": "2025-06-17T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.6",
      "town": "9.2",
      "contrast": "15.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/NO2/-1",
      "start_pst": "2025-06-16T23:00:00",
      "end_pst": "2025-06-17T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "3.6130400875",
      "contrast": "4.0869599125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/PM25/+0",
      "start_pst": "2025-06-17T00:00:00",
      "end_pst": "2025-06-18T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "3.6166666666666666666666666666666666666666666666667",
      "contrast": "4.0833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/PM25/+0",
      "start_pst": "2025-06-17T00:00:00",
      "end_pst": "2025-06-18T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.0",
      "town": "5.2766933043478260869565217391304347826086956521739",
      "contrast": "9.7233066956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/NO2/+0",
      "start_pst": "2025-06-17T00:00:00",
      "end_pst": "2025-06-18T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.0",
      "town": "5.2739130434782608695652173913043478260869565217391",
      "contrast": "9.7260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/NO2/+0",
      "start_pst": "2025-06-17T00:00:00",
      "end_pst": "2025-06-18T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.6",
      "town": "9.15592",
      "contrast": "15.44408",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/NO2/+0",
      "start_pst": "2025-06-17T00:00:00",
      "end_pst": "2025-06-18T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.6",
      "town": "9.2",
      "contrast": "15.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/NO2/+0",
      "start_pst": "2025-06-17T00:00:00",
      "end_pst": "2025-06-18T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "3.5063745083333333333333333333333333333333333333333",
      "contrast": "4.1936254916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/PM25/+1",
      "start_pst": "2025-06-17T01:00:00",
      "end_pst": "2025-06-18T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "3.5125",
      "contrast": "4.1875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/PM25/+1",
      "start_pst": "2025-06-17T01:00:00",
      "end_pst": "2025-06-18T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.0",
      "town": "5.3001567391304347826086956521739130434782608695652",
      "contrast": "9.6998432608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/NO2/+1",
      "start_pst": "2025-06-17T01:00:00",
      "end_pst": "2025-06-18T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.0",
      "town": "5.3",
      "contrast": "9.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/NO2/+1",
      "start_pst": "2025-06-17T01:00:00",
      "end_pst": "2025-06-18T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.6",
      "town": "9.15592",
      "contrast": "15.44408",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/NO2/+1",
      "start_pst": "2025-06-17T01:00:00",
      "end_pst": "2025-06-18T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.6",
      "town": "9.2",
      "contrast": "15.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-17/NO2/+1",
      "start_pst": "2025-06-17T01:00:00",
      "end_pst": "2025-06-18T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/17/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "2.071726725",
      "contrast": "4.628273275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/PM25/-1",
      "start_pst": "2025-06-17T23:00:00",
      "end_pst": "2025-06-18T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "2.0708333333333333333333333333333333333333333333333",
      "contrast": "4.6291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/PM25/-1",
      "start_pst": "2025-06-17T23:00:00",
      "end_pst": "2025-06-18T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "3.5178463913043478260869565217391304347826086956522",
      "contrast": "6.5821536086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/NO2/-1",
      "start_pst": "2025-06-17T23:00:00",
      "end_pst": "2025-06-18T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "3.5130434782608695652173913043478260869565217391304",
      "contrast": "6.5869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/NO2/-1",
      "start_pst": "2025-06-17T23:00:00",
      "end_pst": "2025-06-18T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "7.226274",
      "contrast": "12.873726",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/NO2/-1",
      "start_pst": "2025-06-17T23:00:00",
      "end_pst": "2025-06-18T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "7.2",
      "contrast": "12.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/NO2/-1",
      "start_pst": "2025-06-17T23:00:00",
      "end_pst": "2025-06-18T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "2.1138974791666666666666666666666666666666666666667",
      "contrast": "4.5861025208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/PM25/+0",
      "start_pst": "2025-06-18T00:00:00",
      "end_pst": "2025-06-19T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "2.1125",
      "contrast": "4.5875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/PM25/+0",
      "start_pst": "2025-06-18T00:00:00",
      "end_pst": "2025-06-19T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "3.4151906521739130434782608695652173913043478260870",
      "contrast": "6.6848093478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/NO2/+0",
      "start_pst": "2025-06-18T00:00:00",
      "end_pst": "2025-06-19T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "3.4130434782608695652173913043478260869565217391304",
      "contrast": "6.6869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/NO2/+0",
      "start_pst": "2025-06-18T00:00:00",
      "end_pst": "2025-06-19T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "7.226274",
      "contrast": "12.873726",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/NO2/+0",
      "start_pst": "2025-06-18T00:00:00",
      "end_pst": "2025-06-19T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "7.2",
      "contrast": "12.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/NO2/+0",
      "start_pst": "2025-06-18T00:00:00",
      "end_pst": "2025-06-19T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "2.1613248541666666666666666666666666666666666666667",
      "contrast": "4.5386751458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/PM25/+1",
      "start_pst": "2025-06-18T01:00:00",
      "end_pst": "2025-06-19T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "2.1583333333333333333333333333333333333333333333333",
      "contrast": "4.5416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/PM25/+1",
      "start_pst": "2025-06-18T01:00:00",
      "end_pst": "2025-06-19T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "3.3594674782608695652173913043478260869565217391304",
      "contrast": "6.7405325217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/NO2/+1",
      "start_pst": "2025-06-18T01:00:00",
      "end_pst": "2025-06-19T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "3.3565217391304347826086956521739130434782608695652",
      "contrast": "6.7434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/NO2/+1",
      "start_pst": "2025-06-18T01:00:00",
      "end_pst": "2025-06-19T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "7.226274",
      "contrast": "12.873726",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/NO2/+1",
      "start_pst": "2025-06-18T01:00:00",
      "end_pst": "2025-06-19T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "7.2",
      "contrast": "12.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-18/NO2/+1",
      "start_pst": "2025-06-18T01:00:00",
      "end_pst": "2025-06-19T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/18/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "4.3120210833333333333333333333333333333333333333333",
      "contrast": "1.0879789166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/PM25/-1",
      "start_pst": "2025-06-18T23:00:00",
      "end_pst": "2025-06-19T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "4.3166666666666666666666666666666666666666666666667",
      "contrast": "1.0833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/PM25/-1",
      "start_pst": "2025-06-18T23:00:00",
      "end_pst": "2025-06-19T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.2332276086956521739130434782608695652173913043478",
      "contrast": "5.1667723913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/NO2/-1",
      "start_pst": "2025-06-18T23:00:00",
      "end_pst": "2025-06-19T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.2391304347826086956521739130434782608695652173913",
      "contrast": "5.1608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/NO2/-1",
      "start_pst": "2025-06-18T23:00:00",
      "end_pst": "2025-06-19T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.6",
      "town": "4.934405",
      "contrast": "14.665595",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/NO2/-1",
      "start_pst": "2025-06-18T23:00:00",
      "end_pst": "2025-06-19T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.6",
      "town": "4.9",
      "contrast": "14.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/NO2/-1",
      "start_pst": "2025-06-18T23:00:00",
      "end_pst": "2025-06-19T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "4.3201917875",
      "contrast": "1.0798082125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/PM25/+0",
      "start_pst": "2025-06-19T00:00:00",
      "end_pst": "2025-06-20T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "4.325",
      "contrast": "1.075",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/PM25/+0",
      "start_pst": "2025-06-19T00:00:00",
      "end_pst": "2025-06-20T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.2414439130434782608695652173913043478260869565217",
      "contrast": "5.1585560869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/NO2/+0",
      "start_pst": "2025-06-19T00:00:00",
      "end_pst": "2025-06-20T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.2478260869565217391304347826086956521739130434783",
      "contrast": "5.1521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/NO2/+0",
      "start_pst": "2025-06-19T00:00:00",
      "end_pst": "2025-06-20T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.6",
      "town": "4.934405",
      "contrast": "14.665595",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/NO2/+0",
      "start_pst": "2025-06-19T00:00:00",
      "end_pst": "2025-06-20T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.6",
      "town": "4.9",
      "contrast": "14.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/NO2/+0",
      "start_pst": "2025-06-19T00:00:00",
      "end_pst": "2025-06-20T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "4.334056075",
      "contrast": "1.065943925",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/PM25/+1",
      "start_pst": "2025-06-19T01:00:00",
      "end_pst": "2025-06-20T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "4.3375",
      "contrast": "1.0625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/PM25/+1",
      "start_pst": "2025-06-19T01:00:00",
      "end_pst": "2025-06-20T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.2541678695652173913043478260869565217391304347826",
      "contrast": "5.1458321304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/NO2/+1",
      "start_pst": "2025-06-19T01:00:00",
      "end_pst": "2025-06-20T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "3.2608695652173913043478260869565217391304347826087",
      "contrast": "5.1391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/NO2/+1",
      "start_pst": "2025-06-19T01:00:00",
      "end_pst": "2025-06-20T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.6",
      "town": "4.934405",
      "contrast": "14.665595",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/NO2/+1",
      "start_pst": "2025-06-19T01:00:00",
      "end_pst": "2025-06-20T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.6",
      "town": "4.9",
      "contrast": "14.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-19/NO2/+1",
      "start_pst": "2025-06-19T01:00:00",
      "end_pst": "2025-06-20T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/19/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "3.5461377166666666666666666666666666666666666666667",
      "contrast": "3.0538622833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/PM25/-1",
      "start_pst": "2025-06-19T23:00:00",
      "end_pst": "2025-06-20T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "3.5416666666666666666666666666666666666666666666667",
      "contrast": "3.0583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/PM25/-1",
      "start_pst": "2025-06-19T23:00:00",
      "end_pst": "2025-06-20T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "4.8584377826086956521739130434782608695652173913043",
      "contrast": "3.5415622173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/NO2/-1",
      "start_pst": "2025-06-19T23:00:00",
      "end_pst": "2025-06-20T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "4.8565217391304347826086956521739130434782608695652",
      "contrast": "3.5434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/NO2/-1",
      "start_pst": "2025-06-19T23:00:00",
      "end_pst": "2025-06-20T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "7.532146",
      "contrast": "7.067854",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/NO2/-1",
      "start_pst": "2025-06-19T23:00:00",
      "end_pst": "2025-06-20T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "7.5",
      "contrast": "7.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/NO2/-1",
      "start_pst": "2025-06-19T23:00:00",
      "end_pst": "2025-06-20T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "3.5297708875",
      "contrast": "3.0702291125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/PM25/+0",
      "start_pst": "2025-06-20T00:00:00",
      "end_pst": "2025-06-21T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "3.525",
      "contrast": "3.075",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/PM25/+0",
      "start_pst": "2025-06-20T00:00:00",
      "end_pst": "2025-06-21T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "4.9402945217391304347826086956521739130434782608696",
      "contrast": "3.4597054782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/NO2/+0",
      "start_pst": "2025-06-20T00:00:00",
      "end_pst": "2025-06-21T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "4.9347826086956521739130434782608695652173913043478",
      "contrast": "3.4652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/NO2/+0",
      "start_pst": "2025-06-20T00:00:00",
      "end_pst": "2025-06-21T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "7.532146",
      "contrast": "7.067854",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/NO2/+0",
      "start_pst": "2025-06-20T00:00:00",
      "end_pst": "2025-06-21T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "7.5",
      "contrast": "7.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/NO2/+0",
      "start_pst": "2025-06-20T00:00:00",
      "end_pst": "2025-06-21T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "3.5145316375",
      "contrast": "3.0854683625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/PM25/+1",
      "start_pst": "2025-06-20T01:00:00",
      "end_pst": "2025-06-21T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "3.5125",
      "contrast": "3.0875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/PM25/+1",
      "start_pst": "2025-06-20T01:00:00",
      "end_pst": "2025-06-21T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "5.0030025217391304347826086956521739130434782608696",
      "contrast": "3.3969974782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/NO2/+1",
      "start_pst": "2025-06-20T01:00:00",
      "end_pst": "2025-06-21T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "4.9956521739130434782608695652173913043478260869565",
      "contrast": "3.4043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/NO2/+1",
      "start_pst": "2025-06-20T01:00:00",
      "end_pst": "2025-06-21T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "7.532146",
      "contrast": "7.067854",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/NO2/+1",
      "start_pst": "2025-06-20T01:00:00",
      "end_pst": "2025-06-21T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "7.5",
      "contrast": "7.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-20/NO2/+1",
      "start_pst": "2025-06-20T01:00:00",
      "end_pst": "2025-06-21T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/20/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.9633636375",
      "contrast": "2.1366363625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/PM25/-1",
      "start_pst": "2025-06-20T23:00:00",
      "end_pst": "2025-06-21T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.9791666666666666666666666666666666666666666666667",
      "contrast": "2.1208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/PM25/-1",
      "start_pst": "2025-06-20T23:00:00",
      "end_pst": "2025-06-21T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "3.6916403913043478260869565217391304347826086956522",
      "contrast": "4.0083596086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/NO2/-1",
      "start_pst": "2025-06-20T23:00:00",
      "end_pst": "2025-06-21T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "3.6782608695652173913043478260869565217391304347826",
      "contrast": "4.0217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/NO2/-1",
      "start_pst": "2025-06-20T23:00:00",
      "end_pst": "2025-06-21T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "5.544438",
      "contrast": "11.455562",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/NO2/-1",
      "start_pst": "2025-06-20T23:00:00",
      "end_pst": "2025-06-21T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "5.5",
      "contrast": "11.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/NO2/-1",
      "start_pst": "2025-06-20T23:00:00",
      "end_pst": "2025-06-21T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.1482704291666666666666666666666666666666666666667",
      "contrast": "1.9517295708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/PM25/+0",
      "start_pst": "2025-06-21T00:00:00",
      "end_pst": "2025-06-22T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.1625",
      "contrast": "1.9375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/PM25/+0",
      "start_pst": "2025-06-21T00:00:00",
      "end_pst": "2025-06-22T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "3.6156941739130434782608695652173913043478260869565",
      "contrast": "4.0843058260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/NO2/+0",
      "start_pst": "2025-06-21T00:00:00",
      "end_pst": "2025-06-22T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "3.6043478260869565217391304347826086956521739130435",
      "contrast": "4.0956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/NO2/+0",
      "start_pst": "2025-06-21T00:00:00",
      "end_pst": "2025-06-22T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "5.498147",
      "contrast": "11.501853",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/NO2/+0",
      "start_pst": "2025-06-21T00:00:00",
      "end_pst": "2025-06-22T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "5.5",
      "contrast": "11.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/NO2/+0",
      "start_pst": "2025-06-21T00:00:00",
      "end_pst": "2025-06-22T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.2892908",
      "contrast": "1.8107092",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/PM25/+1",
      "start_pst": "2025-06-21T01:00:00",
      "end_pst": "2025-06-22T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.3041666666666666666666666666666666666666666666667",
      "contrast": "1.7958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/PM25/+1",
      "start_pst": "2025-06-21T01:00:00",
      "end_pst": "2025-06-22T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "3.5664827391304347826086956521739130434782608695652",
      "contrast": "4.1335172608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/NO2/+1",
      "start_pst": "2025-06-21T01:00:00",
      "end_pst": "2025-06-22T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "3.5565217391304347826086956521739130434782608695652",
      "contrast": "4.1434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/NO2/+1",
      "start_pst": "2025-06-21T01:00:00",
      "end_pst": "2025-06-22T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "5.498147",
      "contrast": "11.501853",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/NO2/+1",
      "start_pst": "2025-06-21T01:00:00",
      "end_pst": "2025-06-22T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "5.5",
      "contrast": "11.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-21/NO2/+1",
      "start_pst": "2025-06-21T01:00:00",
      "end_pst": "2025-06-22T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/21/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "6.273891825",
      "contrast": "1.426108175",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/PM25/-1",
      "start_pst": "2025-06-21T23:00:00",
      "end_pst": "2025-06-22T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "6.2833333333333333333333333333333333333333333333333",
      "contrast": "1.4166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/PM25/-1",
      "start_pst": "2025-06-21T23:00:00",
      "end_pst": "2025-06-22T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "5.5404902608695652173913043478260869565217391304348",
      "contrast": "5.3595097391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/NO2/-1",
      "start_pst": "2025-06-21T23:00:00",
      "end_pst": "2025-06-22T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "5.5391304347826086956521739130434782608695652173913",
      "contrast": "5.3608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/NO2/-1",
      "start_pst": "2025-06-21T23:00:00",
      "end_pst": "2025-06-22T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "10.20175",
      "contrast": "7.89825",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/NO2/-1",
      "start_pst": "2025-06-21T23:00:00",
      "end_pst": "2025-06-22T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "10.2",
      "contrast": "7.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/NO2/-1",
      "start_pst": "2025-06-21T23:00:00",
      "end_pst": "2025-06-22T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "6.2268851958333333333333333333333333333333333333333",
      "contrast": "1.4731148041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/PM25/+0",
      "start_pst": "2025-06-22T00:00:00",
      "end_pst": "2025-06-23T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "6.2375",
      "contrast": "1.4625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/PM25/+0",
      "start_pst": "2025-06-22T00:00:00",
      "end_pst": "2025-06-23T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "5.7306378260869565217391304347826086956521739130435",
      "contrast": "5.1693621739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/NO2/+0",
      "start_pst": "2025-06-22T00:00:00",
      "end_pst": "2025-06-23T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "5.7304347826086956521739130434782608695652173913043",
      "contrast": "5.1695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/NO2/+0",
      "start_pst": "2025-06-22T00:00:00",
      "end_pst": "2025-06-23T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "10.20175",
      "contrast": "7.89825",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/NO2/+0",
      "start_pst": "2025-06-22T00:00:00",
      "end_pst": "2025-06-23T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "10.2",
      "contrast": "7.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/NO2/+0",
      "start_pst": "2025-06-22T00:00:00",
      "end_pst": "2025-06-23T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "6.2045911083333333333333333333333333333333333333333",
      "contrast": "1.4954088916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/PM25/+1",
      "start_pst": "2025-06-22T01:00:00",
      "end_pst": "2025-06-23T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "6.2125",
      "contrast": "1.4875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/PM25/+1",
      "start_pst": "2025-06-22T01:00:00",
      "end_pst": "2025-06-23T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "5.9040360434782608695652173913043478260869565217391",
      "contrast": "4.9959639565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/NO2/+1",
      "start_pst": "2025-06-22T01:00:00",
      "end_pst": "2025-06-23T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "5.9043478260869565217391304347826086956521739130435",
      "contrast": "4.9956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/NO2/+1",
      "start_pst": "2025-06-22T01:00:00",
      "end_pst": "2025-06-23T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "10.20175",
      "contrast": "7.89825",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/NO2/+1",
      "start_pst": "2025-06-22T01:00:00",
      "end_pst": "2025-06-23T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "10.2",
      "contrast": "7.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-22/NO2/+1",
      "start_pst": "2025-06-22T01:00:00",
      "end_pst": "2025-06-23T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/22/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "6.337044575",
      "contrast": "3.762955425",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/PM25/-1",
      "start_pst": "2025-06-22T23:00:00",
      "end_pst": "2025-06-23T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "6.3291666666666666666666666666666666666666666666667",
      "contrast": "3.7708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/PM25/-1",
      "start_pst": "2025-06-22T23:00:00",
      "end_pst": "2025-06-23T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "5.6970994782608695652173913043478260869565217391304",
      "contrast": "3.9029005217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/NO2/-1",
      "start_pst": "2025-06-22T23:00:00",
      "end_pst": "2025-06-23T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "5.6956521739130434782608695652173913043478260869565",
      "contrast": "3.9043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/NO2/-1",
      "start_pst": "2025-06-22T23:00:00",
      "end_pst": "2025-06-23T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "32.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "32.8",
      "town": "8.233637",
      "contrast": "24.566363",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/NO2/-1",
      "start_pst": "2025-06-22T23:00:00",
      "end_pst": "2025-06-23T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "32.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "32.8",
      "town": "8.2",
      "contrast": "24.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/NO2/-1",
      "start_pst": "2025-06-22T23:00:00",
      "end_pst": "2025-06-23T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "6.36407425",
      "contrast": "3.73592575",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/PM25/+0",
      "start_pst": "2025-06-23T00:00:00",
      "end_pst": "2025-06-24T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "6.3583333333333333333333333333333333333333333333333",
      "contrast": "3.7416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/PM25/+0",
      "start_pst": "2025-06-23T00:00:00",
      "end_pst": "2025-06-24T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "5.5410457391304347826086956521739130434782608695652",
      "contrast": "4.0589542608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/NO2/+0",
      "start_pst": "2025-06-23T00:00:00",
      "end_pst": "2025-06-24T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "5.5391304347826086956521739130434782608695652173913",
      "contrast": "4.0608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/NO2/+0",
      "start_pst": "2025-06-23T00:00:00",
      "end_pst": "2025-06-24T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "32.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "32.8",
      "town": "8.233637",
      "contrast": "24.566363",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/NO2/+0",
      "start_pst": "2025-06-23T00:00:00",
      "end_pst": "2025-06-24T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "32.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "32.8",
      "town": "8.2",
      "contrast": "24.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/NO2/+0",
      "start_pst": "2025-06-23T00:00:00",
      "end_pst": "2025-06-24T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "6.4372469208333333333333333333333333333333333333333",
      "contrast": "3.6627530791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/PM25/+1",
      "start_pst": "2025-06-23T01:00:00",
      "end_pst": "2025-06-24T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "6.4333333333333333333333333333333333333333333333333",
      "contrast": "3.6666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/PM25/+1",
      "start_pst": "2025-06-23T01:00:00",
      "end_pst": "2025-06-24T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "5.3687584782608695652173913043478260869565217391304",
      "contrast": "4.2312415217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/NO2/+1",
      "start_pst": "2025-06-23T01:00:00",
      "end_pst": "2025-06-24T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "5.3652173913043478260869565217391304347826086956522",
      "contrast": "4.2347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/NO2/+1",
      "start_pst": "2025-06-23T01:00:00",
      "end_pst": "2025-06-24T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "32.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "32.8",
      "town": "8.233637",
      "contrast": "24.566363",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/NO2/+1",
      "start_pst": "2025-06-23T01:00:00",
      "end_pst": "2025-06-24T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "32.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "32.8",
      "town": "8.2",
      "contrast": "24.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-23/NO2/+1",
      "start_pst": "2025-06-23T01:00:00",
      "end_pst": "2025-06-24T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/23/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "10.499343279166666666666666666666666666666666666667",
      "contrast": "0.000656720833333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/PM25/-1",
      "start_pst": "2025-06-23T23:00:00",
      "end_pst": "2025-06-24T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "10.5125",
      "contrast": "-0.0125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/PM25/-1",
      "start_pst": "2025-06-23T23:00:00",
      "end_pst": "2025-06-24T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "3.6812409130434782608695652173913043478260869565217",
      "contrast": "5.0187590869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/NO2/-1",
      "start_pst": "2025-06-23T23:00:00",
      "end_pst": "2025-06-24T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "3.6826086956521739130434782608695652173913043478261",
      "contrast": "5.0173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/NO2/-1",
      "start_pst": "2025-06-23T23:00:00",
      "end_pst": "2025-06-24T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "6.542076",
      "contrast": "11.157924",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/NO2/-1",
      "start_pst": "2025-06-23T23:00:00",
      "end_pst": "2025-06-24T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "6.5",
      "contrast": "11.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/NO2/-1",
      "start_pst": "2025-06-23T23:00:00",
      "end_pst": "2025-06-24T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "10.598127329166666666666666666666666666666666666667",
      "contrast": "-0.098127329166666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/PM25/+0",
      "start_pst": "2025-06-24T00:00:00",
      "end_pst": "2025-06-25T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "10.608333333333333333333333333333333333333333333333",
      "contrast": "-0.108333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/PM25/+0",
      "start_pst": "2025-06-24T00:00:00",
      "end_pst": "2025-06-25T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "3.5677117391304347826086956521739130434782608695652",
      "contrast": "5.1322882608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/NO2/+0",
      "start_pst": "2025-06-24T00:00:00",
      "end_pst": "2025-06-25T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "3.5695652173913043478260869565217391304347826086957",
      "contrast": "5.1304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/NO2/+0",
      "start_pst": "2025-06-24T00:00:00",
      "end_pst": "2025-06-25T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "6.542076",
      "contrast": "11.157924",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/NO2/+0",
      "start_pst": "2025-06-24T00:00:00",
      "end_pst": "2025-06-25T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "6.5",
      "contrast": "11.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/NO2/+0",
      "start_pst": "2025-06-24T00:00:00",
      "end_pst": "2025-06-25T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "10.6651363",
      "contrast": "-0.1651363",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/PM25/+1",
      "start_pst": "2025-06-24T01:00:00",
      "end_pst": "2025-06-25T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "10.675",
      "contrast": "-0.175",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/PM25/+1",
      "start_pst": "2025-06-24T01:00:00",
      "end_pst": "2025-06-25T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "3.5017733043478260869565217391304347826086956521739",
      "contrast": "5.1982266956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/NO2/+1",
      "start_pst": "2025-06-24T01:00:00",
      "end_pst": "2025-06-25T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "3.5043478260869565217391304347826086956521739130435",
      "contrast": "5.1956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/NO2/+1",
      "start_pst": "2025-06-24T01:00:00",
      "end_pst": "2025-06-25T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "6.542076",
      "contrast": "11.157924",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/NO2/+1",
      "start_pst": "2025-06-24T01:00:00",
      "end_pst": "2025-06-25T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "6.5",
      "contrast": "11.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-24/NO2/+1",
      "start_pst": "2025-06-24T01:00:00",
      "end_pst": "2025-06-25T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/24/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "7.3492014541666666666666666666666666666666666666667",
      "contrast": "3.1507985458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/PM25/-1",
      "start_pst": "2025-06-24T23:00:00",
      "end_pst": "2025-06-25T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "7.3333333333333333333333333333333333333333333333333",
      "contrast": "3.1666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/PM25/-1",
      "start_pst": "2025-06-24T23:00:00",
      "end_pst": "2025-06-25T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "6.2136987391304347826086956521739130434782608695652",
      "contrast": "6.0863012608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/NO2/-1",
      "start_pst": "2025-06-24T23:00:00",
      "end_pst": "2025-06-25T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "6.2130434782608695652173913043478260869565217391304",
      "contrast": "6.0869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/NO2/-1",
      "start_pst": "2025-06-24T23:00:00",
      "end_pst": "2025-06-25T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.6",
      "town": "13.70891",
      "contrast": "12.89109",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/NO2/-1",
      "start_pst": "2025-06-24T23:00:00",
      "end_pst": "2025-06-25T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.6",
      "town": "13.7",
      "contrast": "12.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/NO2/-1",
      "start_pst": "2025-06-24T23:00:00",
      "end_pst": "2025-06-25T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "7.1547238541666666666666666666666666666666666666667",
      "contrast": "3.3452761458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/PM25/+0",
      "start_pst": "2025-06-25T00:00:00",
      "end_pst": "2025-06-26T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "7.1416666666666666666666666666666666666666666666667",
      "contrast": "3.3583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/PM25/+0",
      "start_pst": "2025-06-25T00:00:00",
      "end_pst": "2025-06-26T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "6.2450841739130434782608695652173913043478260869565",
      "contrast": "6.0549158260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/NO2/+0",
      "start_pst": "2025-06-25T00:00:00",
      "end_pst": "2025-06-26T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "6.2434782608695652173913043478260869565217391304348",
      "contrast": "6.0565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/NO2/+0",
      "start_pst": "2025-06-25T00:00:00",
      "end_pst": "2025-06-26T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.6",
      "town": "13.70891",
      "contrast": "12.89109",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/NO2/+0",
      "start_pst": "2025-06-25T00:00:00",
      "end_pst": "2025-06-26T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.6",
      "town": "13.7",
      "contrast": "12.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/NO2/+0",
      "start_pst": "2025-06-25T00:00:00",
      "end_pst": "2025-06-26T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "6.94720035",
      "contrast": "3.55279965",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/PM25/+1",
      "start_pst": "2025-06-25T01:00:00",
      "end_pst": "2025-06-26T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "6.9333333333333333333333333333333333333333333333333",
      "contrast": "3.5666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/PM25/+1",
      "start_pst": "2025-06-25T01:00:00",
      "end_pst": "2025-06-26T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "6.2775101304347826086956521739130434782608695652174",
      "contrast": "6.0224898695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/NO2/+1",
      "start_pst": "2025-06-25T01:00:00",
      "end_pst": "2025-06-26T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "6.2782608695652173913043478260869565217391304347826",
      "contrast": "6.0217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/NO2/+1",
      "start_pst": "2025-06-25T01:00:00",
      "end_pst": "2025-06-26T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.6",
      "town": "13.70891",
      "contrast": "12.89109",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/NO2/+1",
      "start_pst": "2025-06-25T01:00:00",
      "end_pst": "2025-06-26T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.6",
      "town": "13.7",
      "contrast": "12.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-25/NO2/+1",
      "start_pst": "2025-06-25T01:00:00",
      "end_pst": "2025-06-26T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/25/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.5320841",
      "contrast": "1.7679159",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/PM25/-1",
      "start_pst": "2025-06-25T23:00:00",
      "end_pst": "2025-06-26T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.5375",
      "contrast": "1.7625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/PM25/-1",
      "start_pst": "2025-06-25T23:00:00",
      "end_pst": "2025-06-26T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "5.700389",
      "contrast": "3.299611",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/NO2/-1",
      "start_pst": "2025-06-25T23:00:00",
      "end_pst": "2025-06-26T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "5.6956521739130434782608695652173913043478260869565",
      "contrast": "3.3043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/NO2/-1",
      "start_pst": "2025-06-25T23:00:00",
      "end_pst": "2025-06-26T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "9.190071",
      "contrast": "5.409929",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/NO2/-1",
      "start_pst": "2025-06-25T23:00:00",
      "end_pst": "2025-06-26T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "9.2",
      "contrast": "5.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/NO2/-1",
      "start_pst": "2025-06-25T23:00:00",
      "end_pst": "2025-06-26T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.4398515166666666666666666666666666666666666666667",
      "contrast": "1.8601484833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/PM25/+0",
      "start_pst": "2025-06-26T00:00:00",
      "end_pst": "2025-06-27T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.4416666666666666666666666666666666666666666666667",
      "contrast": "1.8583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/PM25/+0",
      "start_pst": "2025-06-26T00:00:00",
      "end_pst": "2025-06-27T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "5.7948663913043478260869565217391304347826086956522",
      "contrast": "3.2051336086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/NO2/+0",
      "start_pst": "2025-06-26T00:00:00",
      "end_pst": "2025-06-27T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "5.7913043478260869565217391304347826086956521739130",
      "contrast": "3.2086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/NO2/+0",
      "start_pst": "2025-06-26T00:00:00",
      "end_pst": "2025-06-27T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "9.190071",
      "contrast": "5.409929",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/NO2/+0",
      "start_pst": "2025-06-26T00:00:00",
      "end_pst": "2025-06-27T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "9.2",
      "contrast": "5.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/NO2/+0",
      "start_pst": "2025-06-26T00:00:00",
      "end_pst": "2025-06-27T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.3579800958333333333333333333333333333333333333333",
      "contrast": "1.9420199041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/PM25/+1",
      "start_pst": "2025-06-26T01:00:00",
      "end_pst": "2025-06-27T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.3583333333333333333333333333333333333333333333333",
      "contrast": "1.9416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/PM25/+1",
      "start_pst": "2025-06-26T01:00:00",
      "end_pst": "2025-06-27T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "5.8460695217391304347826086956521739130434782608696",
      "contrast": "3.1539304782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/NO2/+1",
      "start_pst": "2025-06-26T01:00:00",
      "end_pst": "2025-06-27T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.0",
      "town": "5.8391304347826086956521739130434782608695652173913",
      "contrast": "3.1608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/NO2/+1",
      "start_pst": "2025-06-26T01:00:00",
      "end_pst": "2025-06-27T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "9.190071",
      "contrast": "5.409929",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/NO2/+1",
      "start_pst": "2025-06-26T01:00:00",
      "end_pst": "2025-06-27T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "9.2",
      "contrast": "5.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-26/NO2/+1",
      "start_pst": "2025-06-26T01:00:00",
      "end_pst": "2025-06-27T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/26/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.8375965958333333333333333333333333333333333333333",
      "contrast": "3.3624034041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/PM25/-1",
      "start_pst": "2025-06-26T23:00:00",
      "end_pst": "2025-06-27T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.825",
      "contrast": "3.375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/PM25/-1",
      "start_pst": "2025-06-26T23:00:00",
      "end_pst": "2025-06-27T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.1512805217391304347826086956521739130434782608696",
      "contrast": "4.0487194782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/NO2/-1",
      "start_pst": "2025-06-26T23:00:00",
      "end_pst": "2025-06-27T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.1608695652173913043478260869565217391304347826087",
      "contrast": "4.0391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/NO2/-1",
      "start_pst": "2025-06-26T23:00:00",
      "end_pst": "2025-06-27T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.8",
      "town": "7.823679",
      "contrast": "10.976321",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/NO2/-1",
      "start_pst": "2025-06-26T23:00:00",
      "end_pst": "2025-06-27T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.8",
      "town": "7.8",
      "contrast": "11.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/NO2/-1",
      "start_pst": "2025-06-26T23:00:00",
      "end_pst": "2025-06-27T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.8327742208333333333333333333333333333333333333333",
      "contrast": "3.3672257791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/PM25/+0",
      "start_pst": "2025-06-27T00:00:00",
      "end_pst": "2025-06-28T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.8208333333333333333333333333333333333333333333333",
      "contrast": "3.3791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/PM25/+0",
      "start_pst": "2025-06-27T00:00:00",
      "end_pst": "2025-06-28T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.0943459130434782608695652173913043478260869565217",
      "contrast": "4.1056540869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/NO2/+0",
      "start_pst": "2025-06-27T00:00:00",
      "end_pst": "2025-06-28T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.1043478260869565217391304347826086956521739130435",
      "contrast": "4.0956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/NO2/+0",
      "start_pst": "2025-06-27T00:00:00",
      "end_pst": "2025-06-28T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.8",
      "town": "7.823679",
      "contrast": "10.976321",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/NO2/+0",
      "start_pst": "2025-06-27T00:00:00",
      "end_pst": "2025-06-28T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.8",
      "town": "7.8",
      "contrast": "11.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/NO2/+0",
      "start_pst": "2025-06-27T00:00:00",
      "end_pst": "2025-06-28T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.8454384291666666666666666666666666666666666666667",
      "contrast": "3.3545615708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/PM25/+1",
      "start_pst": "2025-06-27T01:00:00",
      "end_pst": "2025-06-28T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.8333333333333333333333333333333333333333333333333",
      "contrast": "3.3666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/PM25/+1",
      "start_pst": "2025-06-27T01:00:00",
      "end_pst": "2025-06-28T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.0648213478260869565217391304347826086956521739130",
      "contrast": "4.1351786521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/NO2/+1",
      "start_pst": "2025-06-27T01:00:00",
      "end_pst": "2025-06-28T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.0782608695652173913043478260869565217391304347826",
      "contrast": "4.1217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/NO2/+1",
      "start_pst": "2025-06-27T01:00:00",
      "end_pst": "2025-06-28T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.8",
      "town": "7.823679",
      "contrast": "10.976321",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/NO2/+1",
      "start_pst": "2025-06-27T01:00:00",
      "end_pst": "2025-06-28T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.8",
      "town": "7.8",
      "contrast": "11.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-27/NO2/+1",
      "start_pst": "2025-06-27T01:00:00",
      "end_pst": "2025-06-28T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/27/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.3881433416666666666666666666666666666666666666667",
      "contrast": "3.4118566583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/PM25/-1",
      "start_pst": "2025-06-27T23:00:00",
      "end_pst": "2025-06-28T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.3791666666666666666666666666666666666666666666667",
      "contrast": "3.4208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/PM25/-1",
      "start_pst": "2025-06-27T23:00:00",
      "end_pst": "2025-06-28T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "2.9829937826086956521739130434782608695652173913043",
      "contrast": "7.2170062173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/NO2/-1",
      "start_pst": "2025-06-27T23:00:00",
      "end_pst": "2025-06-28T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "2.9869565217391304347826086956521739130434782608696",
      "contrast": "7.2130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/NO2/-1",
      "start_pst": "2025-06-27T23:00:00",
      "end_pst": "2025-06-28T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.7",
      "town": "6.988894",
      "contrast": "11.711106",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/NO2/-1",
      "start_pst": "2025-06-27T23:00:00",
      "end_pst": "2025-06-28T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.7",
      "town": "7",
      "contrast": "11.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/NO2/-1",
      "start_pst": "2025-06-27T23:00:00",
      "end_pst": "2025-06-28T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.54620735",
      "contrast": "3.25379265",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/PM25/+0",
      "start_pst": "2025-06-28T00:00:00",
      "end_pst": "2025-06-29T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.5375",
      "contrast": "3.2625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/PM25/+0",
      "start_pst": "2025-06-28T00:00:00",
      "end_pst": "2025-06-29T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "3.0293542173913043478260869565217391304347826086957",
      "contrast": "7.1706457826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/NO2/+0",
      "start_pst": "2025-06-28T00:00:00",
      "end_pst": "2025-06-29T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "3.0304347826086956521739130434782608695652173913043",
      "contrast": "7.1695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/NO2/+0",
      "start_pst": "2025-06-28T00:00:00",
      "end_pst": "2025-06-29T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.7",
      "town": "6.988894",
      "contrast": "11.711106",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/NO2/+0",
      "start_pst": "2025-06-28T00:00:00",
      "end_pst": "2025-06-29T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.7",
      "town": "7",
      "contrast": "11.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/NO2/+0",
      "start_pst": "2025-06-28T00:00:00",
      "end_pst": "2025-06-29T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.6916636458333333333333333333333333333333333333333",
      "contrast": "3.1083363541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/PM25/+1",
      "start_pst": "2025-06-28T01:00:00",
      "end_pst": "2025-06-29T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "3.6833333333333333333333333333333333333333333333333",
      "contrast": "3.1166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/PM25/+1",
      "start_pst": "2025-06-28T01:00:00",
      "end_pst": "2025-06-29T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "3.0146741739130434782608695652173913043478260869565",
      "contrast": "7.1853258260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/NO2/+1",
      "start_pst": "2025-06-28T01:00:00",
      "end_pst": "2025-06-29T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "3.0130434782608695652173913043478260869565217391304",
      "contrast": "7.1869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/NO2/+1",
      "start_pst": "2025-06-28T01:00:00",
      "end_pst": "2025-06-29T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.7",
      "town": "6.988894",
      "contrast": "11.711106",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/NO2/+1",
      "start_pst": "2025-06-28T01:00:00",
      "end_pst": "2025-06-29T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.7",
      "town": "7",
      "contrast": "11.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-28/NO2/+1",
      "start_pst": "2025-06-28T01:00:00",
      "end_pst": "2025-06-29T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/28/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "5.0616652833333333333333333333333333333333333333333",
      "contrast": "1.0383347166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/PM25/-1",
      "start_pst": "2025-06-28T23:00:00",
      "end_pst": "2025-06-29T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "5.0666666666666666666666666666666666666666666666667",
      "contrast": "1.0333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/PM25/-1",
      "start_pst": "2025-06-28T23:00:00",
      "end_pst": "2025-06-29T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.5944758695652173913043478260869565217391304347826",
      "contrast": "3.3055241304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/NO2/-1",
      "start_pst": "2025-06-28T23:00:00",
      "end_pst": "2025-06-29T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.5956521739130434782608695652173913043478260869565",
      "contrast": "3.3043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/NO2/-1",
      "start_pst": "2025-06-28T23:00:00",
      "end_pst": "2025-06-29T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "8.830484",
      "contrast": "1.369516",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/NO2/-1",
      "start_pst": "2025-06-28T23:00:00",
      "end_pst": "2025-06-29T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "8.8",
      "contrast": "1.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/NO2/-1",
      "start_pst": "2025-06-28T23:00:00",
      "end_pst": "2025-06-29T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "5.0543796083333333333333333333333333333333333333333",
      "contrast": "1.0456203916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/PM25/+0",
      "start_pst": "2025-06-29T00:00:00",
      "end_pst": "2025-06-30T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "5.0625",
      "contrast": "1.0375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/PM25/+0",
      "start_pst": "2025-06-29T00:00:00",
      "end_pst": "2025-06-30T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.5564381304347826086956521739130434782608695652174",
      "contrast": "3.3435618695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/NO2/+0",
      "start_pst": "2025-06-29T00:00:00",
      "end_pst": "2025-06-30T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.5565217391304347826086956521739130434782608695652",
      "contrast": "3.3434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/NO2/+0",
      "start_pst": "2025-06-29T00:00:00",
      "end_pst": "2025-06-30T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "8.830484",
      "contrast": "1.369516",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/NO2/+0",
      "start_pst": "2025-06-29T00:00:00",
      "end_pst": "2025-06-30T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "8.8",
      "contrast": "1.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/NO2/+0",
      "start_pst": "2025-06-29T00:00:00",
      "end_pst": "2025-06-30T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "5.022003975",
      "contrast": "1.077996025",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/PM25/+1",
      "start_pst": "2025-06-29T01:00:00",
      "end_pst": "2025-06-30T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "5.0333333333333333333333333333333333333333333333333",
      "contrast": "1.0666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/PM25/+1",
      "start_pst": "2025-06-29T01:00:00",
      "end_pst": "2025-06-30T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.5400675454545454545454545454545454545454545454545",
      "contrast": "3.3599324545454545454545454545454545454545454545455",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/NO2/+1",
      "start_pst": "2025-06-29T01:00:00",
      "end_pst": "2025-06-30T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.5409090909090909090909090909090909090909090909091",
      "contrast": "3.3590909090909090909090909090909090909090909090909",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/NO2/+1",
      "start_pst": "2025-06-29T01:00:00",
      "end_pst": "2025-06-30T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "8.830484",
      "contrast": "1.369516",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/NO2/+1",
      "start_pst": "2025-06-29T01:00:00",
      "end_pst": "2025-06-30T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "8.8",
      "contrast": "1.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-29/NO2/+1",
      "start_pst": "2025-06-29T01:00:00",
      "end_pst": "2025-06-30T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/29/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "5.329526875",
      "contrast": "3.070473125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/PM25/-1",
      "start_pst": "2025-06-29T23:00:00",
      "end_pst": "2025-06-30T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "5.325",
      "contrast": "3.075",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/PM25/-1",
      "start_pst": "2025-06-29T23:00:00",
      "end_pst": "2025-06-30T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "4.4212513478260869565217391304347826086956521739130",
      "contrast": "3.2787486521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/NO2/-1",
      "start_pst": "2025-06-29T23:00:00",
      "end_pst": "2025-06-30T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "4.4173913043478260869565217391304347826086956521739",
      "contrast": "3.2826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/NO2/-1",
      "start_pst": "2025-06-29T23:00:00",
      "end_pst": "2025-06-30T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.2",
      "town": "13.39956",
      "contrast": "4.80044",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/NO2/-1",
      "start_pst": "2025-06-29T23:00:00",
      "end_pst": "2025-06-30T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.2",
      "town": "13.4",
      "contrast": "4.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/NO2/-1",
      "start_pst": "2025-06-29T23:00:00",
      "end_pst": "2025-06-30T23:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "5.3363933291666666666666666666666666666666666666667",
      "contrast": "3.0636066708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/PM25/+0",
      "start_pst": "2025-06-30T00:00:00",
      "end_pst": "2025-07-01T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "5.3291666666666666666666666666666666666666666666667",
      "contrast": "3.0708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/PM25/+0",
      "start_pst": "2025-06-30T00:00:00",
      "end_pst": "2025-07-01T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "4.4518794545454545454545454545454545454545454545455",
      "contrast": "3.2481205454545454545454545454545454545454545454545",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/NO2/+0",
      "start_pst": "2025-06-30T00:00:00",
      "end_pst": "2025-07-01T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "4.45",
      "contrast": "3.25",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/NO2/+0",
      "start_pst": "2025-06-30T00:00:00",
      "end_pst": "2025-07-01T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.2",
      "town": "13.39956",
      "contrast": "4.80044",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/NO2/+0",
      "start_pst": "2025-06-30T00:00:00",
      "end_pst": "2025-07-01T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.2",
      "town": "13.4",
      "contrast": "4.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/NO2/+0",
      "start_pst": "2025-06-30T00:00:00",
      "end_pst": "2025-07-01T00:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "5.3563397041666666666666666666666666666666666666667",
      "contrast": "3.0436602958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/PM25/+1",
      "start_pst": "2025-06-30T01:00:00",
      "end_pst": "2025-07-01T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "5.3458333333333333333333333333333333333333333333333",
      "contrast": "3.0541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/PM25/+1",
      "start_pst": "2025-06-30T01:00:00",
      "end_pst": "2025-07-01T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-06-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "4.5000142173913043478260869565217391304347826086957",
      "contrast": "3.1999857826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/NO2/+1",
      "start_pst": "2025-06-30T01:00:00",
      "end_pst": "2025-07-01T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "4.5",
      "contrast": "3.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/NO2/+1",
      "start_pst": "2025-06-30T01:00:00",
      "end_pst": "2025-07-01T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-06-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.2",
      "town": "13.39956",
      "contrast": "4.80044",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/NO2/+1",
      "start_pst": "2025-06-30T01:00:00",
      "end_pst": "2025-07-01T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-06-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.2",
      "town": "13.4",
      "contrast": "4.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-06-30/NO2/+1",
      "start_pst": "2025-06-30T01:00:00",
      "end_pst": "2025-07-01T01:00:00",
      "onsite_source": {
        "month": "2025-06",
        "date_printed": "6/30/2025",
        "table": "B.1",
        "pdf_page": 30,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/08/WLNG-AQMS-Monthly-Report-2025-06-June-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-06.pdf",
        "source_pdf_sha256": "dbc9870e640cff058505163c548a06a17110f1c7a92e65574cffed2ef24719a9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-06/table-b1-air-native.csv",
        "source_csv_sha256": "6a1c7f3d5a805809baf8fd3109f553cfde6156999ca4744dccbce3e298833870",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "5.553786425",
      "contrast": "4.746213575",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/PM25/-1",
      "start_pst": "2025-06-30T23:00:00",
      "end_pst": "2025-07-01T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "5.5541666666666666666666666666666666666666666666667",
      "contrast": "4.7458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/PM25/-1",
      "start_pst": "2025-06-30T23:00:00",
      "end_pst": "2025-07-01T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "3.6996271818181818181818181818181818181818181818182",
      "contrast": "5.2003728181818181818181818181818181818181818181818",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/NO2/-1",
      "start_pst": "2025-06-30T23:00:00",
      "end_pst": "2025-07-01T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "3.7090909090909090909090909090909090909090909090909",
      "contrast": "5.1909090909090909090909090909090909090909090909091",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/NO2/-1",
      "start_pst": "2025-06-30T23:00:00",
      "end_pst": "2025-07-01T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "6.211284",
      "contrast": "11.488716",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/NO2/-1",
      "start_pst": "2025-06-30T23:00:00",
      "end_pst": "2025-07-01T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "6.2",
      "contrast": "11.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/NO2/-1",
      "start_pst": "2025-06-30T23:00:00",
      "end_pst": "2025-07-01T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "5.552167425",
      "contrast": "4.747832575",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/PM25/+0",
      "start_pst": "2025-07-01T00:00:00",
      "end_pst": "2025-07-02T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "5.5541666666666666666666666666666666666666666666667",
      "contrast": "4.7458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/PM25/+0",
      "start_pst": "2025-07-01T00:00:00",
      "end_pst": "2025-07-02T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "3.8987246521739130434782608695652173913043478260870",
      "contrast": "5.0012753478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/NO2/+0",
      "start_pst": "2025-07-01T00:00:00",
      "end_pst": "2025-07-02T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "3.9086956521739130434782608695652173913043478260870",
      "contrast": "4.9913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/NO2/+0",
      "start_pst": "2025-07-01T00:00:00",
      "end_pst": "2025-07-02T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "8.278869",
      "contrast": "9.421131",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/NO2/+0",
      "start_pst": "2025-07-01T00:00:00",
      "end_pst": "2025-07-02T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "8.3",
      "contrast": "9.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/NO2/+0",
      "start_pst": "2025-07-01T00:00:00",
      "end_pst": "2025-07-02T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "5.5709138416666666666666666666666666666666666666667",
      "contrast": "4.7290861583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/PM25/+1",
      "start_pst": "2025-07-01T01:00:00",
      "end_pst": "2025-07-02T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "5.575",
      "contrast": "4.725",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/PM25/+1",
      "start_pst": "2025-07-01T01:00:00",
      "end_pst": "2025-07-02T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "3.9679407391304347826086956521739130434782608695652",
      "contrast": "4.9320592608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/NO2/+1",
      "start_pst": "2025-07-01T01:00:00",
      "end_pst": "2025-07-02T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "3.9782608695652173913043478260869565217391304347826",
      "contrast": "4.9217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/NO2/+1",
      "start_pst": "2025-07-01T01:00:00",
      "end_pst": "2025-07-02T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "8.278869",
      "contrast": "9.421131",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/NO2/+1",
      "start_pst": "2025-07-01T01:00:00",
      "end_pst": "2025-07-02T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "8.3",
      "contrast": "9.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-01/NO2/+1",
      "start_pst": "2025-07-01T01:00:00",
      "end_pst": "2025-07-02T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "6.27315035",
      "contrast": "2.12684965",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/PM25/-1",
      "start_pst": "2025-07-01T23:00:00",
      "end_pst": "2025-07-02T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "6.2541666666666666666666666666666666666666666666667",
      "contrast": "2.1458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/PM25/-1",
      "start_pst": "2025-07-01T23:00:00",
      "end_pst": "2025-07-02T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "6.1307862608695652173913043478260869565217391304348",
      "contrast": "0.2692137391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/NO2/-1",
      "start_pst": "2025-07-01T23:00:00",
      "end_pst": "2025-07-02T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "6.1304347826086956521739130434782608695652173913043",
      "contrast": "0.2695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/NO2/-1",
      "start_pst": "2025-07-01T23:00:00",
      "end_pst": "2025-07-02T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.7",
      "town": "14.04517",
      "contrast": "0.65483",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/NO2/-1",
      "start_pst": "2025-07-01T23:00:00",
      "end_pst": "2025-07-02T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.7",
      "town": "14",
      "contrast": "0.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/NO2/-1",
      "start_pst": "2025-07-01T23:00:00",
      "end_pst": "2025-07-02T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "6.1839250166666666666666666666666666666666666666667",
      "contrast": "2.2160749833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/PM25/+0",
      "start_pst": "2025-07-02T00:00:00",
      "end_pst": "2025-07-03T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "6.1625",
      "contrast": "2.2375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/PM25/+0",
      "start_pst": "2025-07-02T00:00:00",
      "end_pst": "2025-07-03T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "5.9656781739130434782608695652173913043478260869565",
      "contrast": "0.4343218260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/NO2/+0",
      "start_pst": "2025-07-02T00:00:00",
      "end_pst": "2025-07-03T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "5.9652173913043478260869565217391304347826086956522",
      "contrast": "0.4347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/NO2/+0",
      "start_pst": "2025-07-02T00:00:00",
      "end_pst": "2025-07-03T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.7",
      "town": "14.04517",
      "contrast": "0.65483",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/NO2/+0",
      "start_pst": "2025-07-02T00:00:00",
      "end_pst": "2025-07-03T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.7",
      "town": "14",
      "contrast": "0.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/NO2/+0",
      "start_pst": "2025-07-02T00:00:00",
      "end_pst": "2025-07-03T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "6.0641491833333333333333333333333333333333333333333",
      "contrast": "2.3358508166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/PM25/+1",
      "start_pst": "2025-07-02T01:00:00",
      "end_pst": "2025-07-03T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.4",
      "town": "6.0416666666666666666666666666666666666666666666667",
      "contrast": "2.3583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/PM25/+1",
      "start_pst": "2025-07-02T01:00:00",
      "end_pst": "2025-07-03T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "5.8721186086956521739130434782608695652173913043478",
      "contrast": "0.5278813913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/NO2/+1",
      "start_pst": "2025-07-02T01:00:00",
      "end_pst": "2025-07-03T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "5.8695652173913043478260869565217391304347826086957",
      "contrast": "0.5304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/NO2/+1",
      "start_pst": "2025-07-02T01:00:00",
      "end_pst": "2025-07-03T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.7",
      "town": "14.04517",
      "contrast": "0.65483",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/NO2/+1",
      "start_pst": "2025-07-02T01:00:00",
      "end_pst": "2025-07-03T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.7",
      "town": "14",
      "contrast": "0.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-02/NO2/+1",
      "start_pst": "2025-07-02T01:00:00",
      "end_pst": "2025-07-03T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.9816517541666666666666666666666666666666666666667",
      "contrast": "2.4183482458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/PM25/-1",
      "start_pst": "2025-07-02T23:00:00",
      "end_pst": "2025-07-03T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.9875",
      "contrast": "2.4125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/PM25/-1",
      "start_pst": "2025-07-02T23:00:00",
      "end_pst": "2025-07-03T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "4.9597404347826086956521739130434782608695652173913",
      "contrast": "0.7402595652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/NO2/-1",
      "start_pst": "2025-07-02T23:00:00",
      "end_pst": "2025-07-03T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "4.9652173913043478260869565217391304347826086956522",
      "contrast": "0.7347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/NO2/-1",
      "start_pst": "2025-07-02T23:00:00",
      "end_pst": "2025-07-03T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "10.2443",
      "contrast": "4.0557",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/NO2/-1",
      "start_pst": "2025-07-02T23:00:00",
      "end_pst": "2025-07-03T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "10.2",
      "contrast": "4.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/NO2/-1",
      "start_pst": "2025-07-02T23:00:00",
      "end_pst": "2025-07-03T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.0491424333333333333333333333333333333333333333333",
      "contrast": "2.3508575666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/PM25/+0",
      "start_pst": "2025-07-03T00:00:00",
      "end_pst": "2025-07-04T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.0583333333333333333333333333333333333333333333333",
      "contrast": "2.3416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/PM25/+0",
      "start_pst": "2025-07-03T00:00:00",
      "end_pst": "2025-07-04T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "4.9583019130434782608695652173913043478260869565217",
      "contrast": "0.7416980869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/NO2/+0",
      "start_pst": "2025-07-03T00:00:00",
      "end_pst": "2025-07-04T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "4.9608695652173913043478260869565217391304347826087",
      "contrast": "0.7391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/NO2/+0",
      "start_pst": "2025-07-03T00:00:00",
      "end_pst": "2025-07-04T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "10.2443",
      "contrast": "4.0557",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/NO2/+0",
      "start_pst": "2025-07-03T00:00:00",
      "end_pst": "2025-07-04T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "10.2",
      "contrast": "4.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/NO2/+0",
      "start_pst": "2025-07-03T00:00:00",
      "end_pst": "2025-07-04T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.1341637708333333333333333333333333333333333333333",
      "contrast": "2.2658362291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/PM25/+1",
      "start_pst": "2025-07-03T01:00:00",
      "end_pst": "2025-07-04T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.1458333333333333333333333333333333333333333333333",
      "contrast": "2.2541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/PM25/+1",
      "start_pst": "2025-07-03T01:00:00",
      "end_pst": "2025-07-04T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "4.8965231304347826086956521739130434782608695652174",
      "contrast": "0.8034768695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/NO2/+1",
      "start_pst": "2025-07-03T01:00:00",
      "end_pst": "2025-07-04T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "4.9",
      "contrast": "0.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/NO2/+1",
      "start_pst": "2025-07-03T01:00:00",
      "end_pst": "2025-07-04T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "10.2443",
      "contrast": "4.0557",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/NO2/+1",
      "start_pst": "2025-07-03T01:00:00",
      "end_pst": "2025-07-04T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "10.2",
      "contrast": "4.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-03/NO2/+1",
      "start_pst": "2025-07-03T01:00:00",
      "end_pst": "2025-07-04T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.1564911875",
      "contrast": "2.2435088125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/PM25/-1",
      "start_pst": "2025-07-03T23:00:00",
      "end_pst": "2025-07-04T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.1625",
      "contrast": "2.2375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/PM25/-1",
      "start_pst": "2025-07-03T23:00:00",
      "end_pst": "2025-07-04T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.8713749565217391304347826086956521739130434782609",
      "contrast": "3.7286250434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/NO2/-1",
      "start_pst": "2025-07-03T23:00:00",
      "end_pst": "2025-07-04T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.8695652173913043478260869565217391304347826086957",
      "contrast": "3.7304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/NO2/-1",
      "start_pst": "2025-07-03T23:00:00",
      "end_pst": "2025-07-04T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "5.145096",
      "contrast": "7.854904",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/NO2/-1",
      "start_pst": "2025-07-03T23:00:00",
      "end_pst": "2025-07-04T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "5.1",
      "contrast": "7.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/NO2/-1",
      "start_pst": "2025-07-03T23:00:00",
      "end_pst": "2025-07-04T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.1353368416666666666666666666666666666666666666667",
      "contrast": "2.2646631583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/PM25/+0",
      "start_pst": "2025-07-04T00:00:00",
      "end_pst": "2025-07-05T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.1375",
      "contrast": "2.2625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/PM25/+0",
      "start_pst": "2025-07-04T00:00:00",
      "end_pst": "2025-07-05T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.8336859565217391304347826086956521739130434782609",
      "contrast": "3.7663140434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/NO2/+0",
      "start_pst": "2025-07-04T00:00:00",
      "end_pst": "2025-07-05T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.8347826086956521739130434782608695652173913043478",
      "contrast": "3.7652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/NO2/+0",
      "start_pst": "2025-07-04T00:00:00",
      "end_pst": "2025-07-05T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "5.145096",
      "contrast": "7.854904",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/NO2/+0",
      "start_pst": "2025-07-04T00:00:00",
      "end_pst": "2025-07-05T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "5.1",
      "contrast": "7.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/NO2/+0",
      "start_pst": "2025-07-04T00:00:00",
      "end_pst": "2025-07-05T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.1379220958333333333333333333333333333333333333333",
      "contrast": "2.2620779041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/PM25/+1",
      "start_pst": "2025-07-04T01:00:00",
      "end_pst": "2025-07-05T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.1375",
      "contrast": "2.2625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/PM25/+1",
      "start_pst": "2025-07-04T01:00:00",
      "end_pst": "2025-07-05T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.8674939565217391304347826086956521739130434782609",
      "contrast": "3.7325060434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/NO2/+1",
      "start_pst": "2025-07-04T01:00:00",
      "end_pst": "2025-07-05T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.8695652173913043478260869565217391304347826086957",
      "contrast": "3.7304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/NO2/+1",
      "start_pst": "2025-07-04T01:00:00",
      "end_pst": "2025-07-05T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "5.145096",
      "contrast": "7.854904",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/NO2/+1",
      "start_pst": "2025-07-04T01:00:00",
      "end_pst": "2025-07-05T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "5.1",
      "contrast": "7.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-04/NO2/+1",
      "start_pst": "2025-07-04T01:00:00",
      "end_pst": "2025-07-05T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "6.31256675",
      "contrast": "1.18743325",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/PM25/-1",
      "start_pst": "2025-07-04T23:00:00",
      "end_pst": "2025-07-05T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "6.3125",
      "contrast": "1.1875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/PM25/-1",
      "start_pst": "2025-07-04T23:00:00",
      "end_pst": "2025-07-05T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "4.5351969565217391304347826086956521739130434782609",
      "contrast": "1.1648030434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/NO2/-1",
      "start_pst": "2025-07-04T23:00:00",
      "end_pst": "2025-07-05T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "4.5304347826086956521739130434782608695652173913043",
      "contrast": "1.1695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/NO2/-1",
      "start_pst": "2025-07-04T23:00:00",
      "end_pst": "2025-07-05T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "6.535597",
      "contrast": "5.464403",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/NO2/-1",
      "start_pst": "2025-07-04T23:00:00",
      "end_pst": "2025-07-05T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "6.5",
      "contrast": "5.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/NO2/-1",
      "start_pst": "2025-07-04T23:00:00",
      "end_pst": "2025-07-05T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "6.3687665416666666666666666666666666666666666666667",
      "contrast": "1.1312334583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/PM25/+0",
      "start_pst": "2025-07-05T00:00:00",
      "end_pst": "2025-07-06T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "6.3708333333333333333333333333333333333333333333333",
      "contrast": "1.1291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/PM25/+0",
      "start_pst": "2025-07-05T00:00:00",
      "end_pst": "2025-07-06T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "4.6169405217391304347826086956521739130434782608696",
      "contrast": "1.0830594782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/NO2/+0",
      "start_pst": "2025-07-05T00:00:00",
      "end_pst": "2025-07-06T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "4.6130434782608695652173913043478260869565217391304",
      "contrast": "1.0869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/NO2/+0",
      "start_pst": "2025-07-05T00:00:00",
      "end_pst": "2025-07-06T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "6.535597",
      "contrast": "5.464403",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/NO2/+0",
      "start_pst": "2025-07-05T00:00:00",
      "end_pst": "2025-07-06T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "6.5",
      "contrast": "5.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/NO2/+0",
      "start_pst": "2025-07-05T00:00:00",
      "end_pst": "2025-07-06T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "6.4114532791666666666666666666666666666666666666667",
      "contrast": "1.0885467208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/PM25/+1",
      "start_pst": "2025-07-05T01:00:00",
      "end_pst": "2025-07-06T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "6.4125",
      "contrast": "1.0875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/PM25/+1",
      "start_pst": "2025-07-05T01:00:00",
      "end_pst": "2025-07-06T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "4.5994345217391304347826086956521739130434782608696",
      "contrast": "1.1005654782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/NO2/+1",
      "start_pst": "2025-07-05T01:00:00",
      "end_pst": "2025-07-06T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "4.5956521739130434782608695652173913043478260869565",
      "contrast": "1.1043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/NO2/+1",
      "start_pst": "2025-07-05T01:00:00",
      "end_pst": "2025-07-06T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "6.535597",
      "contrast": "5.464403",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/NO2/+1",
      "start_pst": "2025-07-05T01:00:00",
      "end_pst": "2025-07-06T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "6.5",
      "contrast": "5.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-05/NO2/+1",
      "start_pst": "2025-07-05T01:00:00",
      "end_pst": "2025-07-06T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.4852703666666666666666666666666666666666666666667",
      "contrast": "1.9147296333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/PM25/-1",
      "start_pst": "2025-07-05T23:00:00",
      "end_pst": "2025-07-06T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.4833333333333333333333333333333333333333333333333",
      "contrast": "1.9166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/PM25/-1",
      "start_pst": "2025-07-05T23:00:00",
      "end_pst": "2025-07-06T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.2970842173913043478260869565217391304347826086957",
      "contrast": "1.9029157826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/NO2/-1",
      "start_pst": "2025-07-05T23:00:00",
      "end_pst": "2025-07-06T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.3043478260869565217391304347826086956521739130435",
      "contrast": "1.8956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/NO2/-1",
      "start_pst": "2025-07-05T23:00:00",
      "end_pst": "2025-07-06T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "10.83961",
      "contrast": "0.76039",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/NO2/-1",
      "start_pst": "2025-07-05T23:00:00",
      "end_pst": "2025-07-06T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "10.8",
      "contrast": "0.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/NO2/-1",
      "start_pst": "2025-07-05T23:00:00",
      "end_pst": "2025-07-06T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.4861544208333333333333333333333333333333333333333",
      "contrast": "1.9138455791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/PM25/+0",
      "start_pst": "2025-07-06T00:00:00",
      "end_pst": "2025-07-07T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.4833333333333333333333333333333333333333333333333",
      "contrast": "1.9166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/PM25/+0",
      "start_pst": "2025-07-06T00:00:00",
      "end_pst": "2025-07-07T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.3106790434782608695652173913043478260869565217391",
      "contrast": "1.8893209565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/NO2/+0",
      "start_pst": "2025-07-06T00:00:00",
      "end_pst": "2025-07-07T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.3173913043478260869565217391304347826086956521739",
      "contrast": "1.8826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/NO2/+0",
      "start_pst": "2025-07-06T00:00:00",
      "end_pst": "2025-07-07T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "10.83961",
      "contrast": "0.76039",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/NO2/+0",
      "start_pst": "2025-07-06T00:00:00",
      "end_pst": "2025-07-07T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "10.8",
      "contrast": "0.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/NO2/+0",
      "start_pst": "2025-07-06T00:00:00",
      "end_pst": "2025-07-07T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.4565392208333333333333333333333333333333333333333",
      "contrast": "1.9434607791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/PM25/+1",
      "start_pst": "2025-07-06T01:00:00",
      "end_pst": "2025-07-07T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "5.4541666666666666666666666666666666666666666666667",
      "contrast": "1.9458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/PM25/+1",
      "start_pst": "2025-07-06T01:00:00",
      "end_pst": "2025-07-07T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.3116099565217391304347826086956521739130434782609",
      "contrast": "1.8883900434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/NO2/+1",
      "start_pst": "2025-07-06T01:00:00",
      "end_pst": "2025-07-07T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.3173913043478260869565217391304347826086956521739",
      "contrast": "1.8826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/NO2/+1",
      "start_pst": "2025-07-06T01:00:00",
      "end_pst": "2025-07-07T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "10.83961",
      "contrast": "0.76039",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/NO2/+1",
      "start_pst": "2025-07-06T01:00:00",
      "end_pst": "2025-07-07T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "10.8",
      "contrast": "0.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-06/NO2/+1",
      "start_pst": "2025-07-06T01:00:00",
      "end_pst": "2025-07-07T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "5.439439925",
      "contrast": "2.660560075",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-07/PM25/-1",
      "start_pst": "2025-07-06T23:00:00",
      "end_pst": "2025-07-07T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "5.4291666666666666666666666666666666666666666666667",
      "contrast": "2.6708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-07/PM25/-1",
      "start_pst": "2025-07-06T23:00:00",
      "end_pst": "2025-07-07T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.5891014347826086956521739130434782608695652173913",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-07/NO2/-1",
      "start_pst": "2025-07-06T23:00:00",
      "end_pst": "2025-07-07T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.5913043478260869565217391304347826086956521739130",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-07/NO2/-1",
      "start_pst": "2025-07-06T23:00:00",
      "end_pst": "2025-07-07T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.855206",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-07/NO2/-1",
      "start_pst": "2025-07-06T23:00:00",
      "end_pst": "2025-07-07T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.9",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-07/NO2/-1",
      "start_pst": "2025-07-06T23:00:00",
      "end_pst": "2025-07-07T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "5.4346000875",
      "contrast": "2.6653999125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-07/PM25/+0",
      "start_pst": "2025-07-07T00:00:00",
      "end_pst": "2025-07-08T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "5.425",
      "contrast": "2.675",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-07/PM25/+0",
      "start_pst": "2025-07-07T00:00:00",
      "end_pst": "2025-07-08T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.5658109565217391304347826086956521739130434782609",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-07/NO2/+0",
      "start_pst": "2025-07-07T00:00:00",
      "end_pst": "2025-07-08T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.5652173913043478260869565217391304347826086956522",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-07/NO2/+0",
      "start_pst": "2025-07-07T00:00:00",
      "end_pst": "2025-07-08T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.855206",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-07/NO2/+0",
      "start_pst": "2025-07-07T00:00:00",
      "end_pst": "2025-07-08T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.9",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-07/NO2/+0",
      "start_pst": "2025-07-07T00:00:00",
      "end_pst": "2025-07-08T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "5.4791413458333333333333333333333333333333333333333",
      "contrast": "2.6208586541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-07/PM25/+1",
      "start_pst": "2025-07-07T01:00:00",
      "end_pst": "2025-07-08T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "5.4708333333333333333333333333333333333333333333333",
      "contrast": "2.6291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-07/PM25/+1",
      "start_pst": "2025-07-07T01:00:00",
      "end_pst": "2025-07-08T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.5914161304347826086956521739130434782608695652174",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-07/NO2/+1",
      "start_pst": "2025-07-07T01:00:00",
      "end_pst": "2025-07-08T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.5913043478260869565217391304347826086956521739130",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-07/NO2/+1",
      "start_pst": "2025-07-07T01:00:00",
      "end_pst": "2025-07-08T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.855206",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-07/NO2/+1",
      "start_pst": "2025-07-07T01:00:00",
      "end_pst": "2025-07-08T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.9",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-07/NO2/+1",
      "start_pst": "2025-07-07T01:00:00",
      "end_pst": "2025-07-08T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "5.3747653916666666666666666666666666666666666666667",
      "contrast": "3.4252346083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-08/PM25/-1",
      "start_pst": "2025-07-07T23:00:00",
      "end_pst": "2025-07-08T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "5.375",
      "contrast": "3.425",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-08/PM25/-1",
      "start_pst": "2025-07-07T23:00:00",
      "end_pst": "2025-07-08T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.8232960434782608695652173913043478260869565217391",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-08/NO2/-1",
      "start_pst": "2025-07-07T23:00:00",
      "end_pst": "2025-07-08T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.8217391304347826086956521739130434782608695652174",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-08/NO2/-1",
      "start_pst": "2025-07-07T23:00:00",
      "end_pst": "2025-07-08T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.515721",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-08/NO2/-1",
      "start_pst": "2025-07-07T23:00:00",
      "end_pst": "2025-07-08T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-08/NO2/-1",
      "start_pst": "2025-07-07T23:00:00",
      "end_pst": "2025-07-08T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "5.1704102208333333333333333333333333333333333333333",
      "contrast": "3.6295897791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-08/PM25/+0",
      "start_pst": "2025-07-08T00:00:00",
      "end_pst": "2025-07-09T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "5.1708333333333333333333333333333333333333333333333",
      "contrast": "3.6291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-08/PM25/+0",
      "start_pst": "2025-07-08T00:00:00",
      "end_pst": "2025-07-09T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.7362125217391304347826086956521739130434782608696",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-08/NO2/+0",
      "start_pst": "2025-07-08T00:00:00",
      "end_pst": "2025-07-09T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.7347826086956521739130434782608695652173913043478",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-08/NO2/+0",
      "start_pst": "2025-07-08T00:00:00",
      "end_pst": "2025-07-09T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.515721",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-08/NO2/+0",
      "start_pst": "2025-07-08T00:00:00",
      "end_pst": "2025-07-09T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-08/NO2/+0",
      "start_pst": "2025-07-08T00:00:00",
      "end_pst": "2025-07-09T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "4.95477505",
      "contrast": "3.84522495",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-08/PM25/+1",
      "start_pst": "2025-07-08T01:00:00",
      "end_pst": "2025-07-09T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "4.9541666666666666666666666666666666666666666666667",
      "contrast": "3.8458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-08/PM25/+1",
      "start_pst": "2025-07-08T01:00:00",
      "end_pst": "2025-07-09T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.6852883913043478260869565217391304347826086956522",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-08/NO2/+1",
      "start_pst": "2025-07-08T01:00:00",
      "end_pst": "2025-07-09T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.6826086956521739130434782608695652173913043478261",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-08/NO2/+1",
      "start_pst": "2025-07-08T01:00:00",
      "end_pst": "2025-07-09T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.515721",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-08/NO2/+1",
      "start_pst": "2025-07-08T01:00:00",
      "end_pst": "2025-07-09T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-08/NO2/+1",
      "start_pst": "2025-07-08T01:00:00",
      "end_pst": "2025-07-09T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "1.812493125",
      "contrast": "4.987506875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-09/PM25/-1",
      "start_pst": "2025-07-08T23:00:00",
      "end_pst": "2025-07-09T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "1.8166666666666666666666666666666666666666666666667",
      "contrast": "4.9833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-09/PM25/-1",
      "start_pst": "2025-07-08T23:00:00",
      "end_pst": "2025-07-09T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.0607813913043478260869565217391304347826086956522",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-09/NO2/-1",
      "start_pst": "2025-07-08T23:00:00",
      "end_pst": "2025-07-09T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.0521739130434782608695652173913043478260869565217",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-09/NO2/-1",
      "start_pst": "2025-07-08T23:00:00",
      "end_pst": "2025-07-09T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.475972",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-09/NO2/-1",
      "start_pst": "2025-07-08T23:00:00",
      "end_pst": "2025-07-09T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-09/NO2/-1",
      "start_pst": "2025-07-08T23:00:00",
      "end_pst": "2025-07-09T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.1324189583333333333333333333333333333333333333333",
      "contrast": "4.6675810416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-09/PM25/+0",
      "start_pst": "2025-07-09T00:00:00",
      "end_pst": "2025-07-10T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.1375",
      "contrast": "4.6625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-09/PM25/+0",
      "start_pst": "2025-07-09T00:00:00",
      "end_pst": "2025-07-10T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.115834",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-09/NO2/+0",
      "start_pst": "2025-07-09T00:00:00",
      "end_pst": "2025-07-10T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.1086956521739130434782608695652173913043478260870",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-09/NO2/+0",
      "start_pst": "2025-07-09T00:00:00",
      "end_pst": "2025-07-10T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.475972",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-09/NO2/+0",
      "start_pst": "2025-07-09T00:00:00",
      "end_pst": "2025-07-10T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-09/NO2/+0",
      "start_pst": "2025-07-09T00:00:00",
      "end_pst": "2025-07-10T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.3947367041666666666666666666666666666666666666667",
      "contrast": "4.4052632958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-09/PM25/+1",
      "start_pst": "2025-07-09T01:00:00",
      "end_pst": "2025-07-10T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.4",
      "contrast": "4.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-09/PM25/+1",
      "start_pst": "2025-07-09T01:00:00",
      "end_pst": "2025-07-10T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.1414237391304347826086956521739130434782608695652",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-09/NO2/+1",
      "start_pst": "2025-07-09T01:00:00",
      "end_pst": "2025-07-10T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.1347826086956521739130434782608695652173913043478",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-09/NO2/+1",
      "start_pst": "2025-07-09T01:00:00",
      "end_pst": "2025-07-10T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.475972",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-09/NO2/+1",
      "start_pst": "2025-07-09T01:00:00",
      "end_pst": "2025-07-10T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-09/NO2/+1",
      "start_pst": "2025-07-09T01:00:00",
      "end_pst": "2025-07-10T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "7.18104985",
      "contrast": "0.21895015",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-10/PM25/-1",
      "start_pst": "2025-07-09T23:00:00",
      "end_pst": "2025-07-10T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "7.1833333333333333333333333333333333333333333333333",
      "contrast": "0.2166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-10/PM25/-1",
      "start_pst": "2025-07-09T23:00:00",
      "end_pst": "2025-07-10T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.4221070434782608695652173913043478260869565217391",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-10/NO2/-1",
      "start_pst": "2025-07-09T23:00:00",
      "end_pst": "2025-07-10T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.4217391304347826086956521739130434782608695652174",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-10/NO2/-1",
      "start_pst": "2025-07-09T23:00:00",
      "end_pst": "2025-07-10T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.727567",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-10/NO2/-1",
      "start_pst": "2025-07-09T23:00:00",
      "end_pst": "2025-07-10T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.7",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-10/NO2/-1",
      "start_pst": "2025-07-09T23:00:00",
      "end_pst": "2025-07-10T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "7.1418381",
      "contrast": "0.2581619",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-10/PM25/+0",
      "start_pst": "2025-07-10T00:00:00",
      "end_pst": "2025-07-11T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "7.1416666666666666666666666666666666666666666666667",
      "contrast": "0.2583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-10/PM25/+0",
      "start_pst": "2025-07-10T00:00:00",
      "end_pst": "2025-07-11T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.4110139565217391304347826086956521739130434782609",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-10/NO2/+0",
      "start_pst": "2025-07-10T00:00:00",
      "end_pst": "2025-07-11T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.4086956521739130434782608695652173913043478260870",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-10/NO2/+0",
      "start_pst": "2025-07-10T00:00:00",
      "end_pst": "2025-07-11T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.727567",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-10/NO2/+0",
      "start_pst": "2025-07-10T00:00:00",
      "end_pst": "2025-07-11T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.7",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-10/NO2/+0",
      "start_pst": "2025-07-10T00:00:00",
      "end_pst": "2025-07-11T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "7.1047459708333333333333333333333333333333333333333",
      "contrast": "0.2952540291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-10/PM25/+1",
      "start_pst": "2025-07-10T01:00:00",
      "end_pst": "2025-07-11T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "7.1041666666666666666666666666666666666666666666667",
      "contrast": "0.2958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-10/PM25/+1",
      "start_pst": "2025-07-10T01:00:00",
      "end_pst": "2025-07-11T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.3771335652173913043478260869565217391304347826087",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-10/NO2/+1",
      "start_pst": "2025-07-10T01:00:00",
      "end_pst": "2025-07-11T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.3739130434782608695652173913043478260869565217391",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-10/NO2/+1",
      "start_pst": "2025-07-10T01:00:00",
      "end_pst": "2025-07-11T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.727567",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-10/NO2/+1",
      "start_pst": "2025-07-10T01:00:00",
      "end_pst": "2025-07-11T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.7",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-10/NO2/+1",
      "start_pst": "2025-07-10T01:00:00",
      "end_pst": "2025-07-11T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.4542088875",
      "contrast": "4.0457911125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/PM25/-1",
      "start_pst": "2025-07-10T23:00:00",
      "end_pst": "2025-07-11T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.4541666666666666666666666666666666666666666666667",
      "contrast": "4.0458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/PM25/-1",
      "start_pst": "2025-07-10T23:00:00",
      "end_pst": "2025-07-11T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.2157980869565217391304347826086956521739130434783",
      "contrast": "2.8842019130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/NO2/-1",
      "start_pst": "2025-07-10T23:00:00",
      "end_pst": "2025-07-11T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.2086956521739130434782608695652173913043478260870",
      "contrast": "2.8913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/NO2/-1",
      "start_pst": "2025-07-10T23:00:00",
      "end_pst": "2025-07-11T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.2",
      "town": "7.167501",
      "contrast": "6.032499",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/NO2/-1",
      "start_pst": "2025-07-10T23:00:00",
      "end_pst": "2025-07-11T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.2",
      "town": "7.2",
      "contrast": "6.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/NO2/-1",
      "start_pst": "2025-07-10T23:00:00",
      "end_pst": "2025-07-11T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.2331278916666666666666666666666666666666666666667",
      "contrast": "4.2668721083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/PM25/+0",
      "start_pst": "2025-07-11T00:00:00",
      "end_pst": "2025-07-12T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.2333333333333333333333333333333333333333333333333",
      "contrast": "4.2666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/PM25/+0",
      "start_pst": "2025-07-11T00:00:00",
      "end_pst": "2025-07-12T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.3093213043478260869565217391304347826086956521739",
      "contrast": "2.7906786956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/NO2/+0",
      "start_pst": "2025-07-11T00:00:00",
      "end_pst": "2025-07-12T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.3043478260869565217391304347826086956521739130435",
      "contrast": "2.7956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/NO2/+0",
      "start_pst": "2025-07-11T00:00:00",
      "end_pst": "2025-07-12T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.2",
      "town": "7.167501",
      "contrast": "6.032499",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/NO2/+0",
      "start_pst": "2025-07-11T00:00:00",
      "end_pst": "2025-07-12T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.2",
      "town": "7.2",
      "contrast": "6.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/NO2/+0",
      "start_pst": "2025-07-11T00:00:00",
      "end_pst": "2025-07-12T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.0504411083333333333333333333333333333333333333333",
      "contrast": "4.4495588916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/PM25/+1",
      "start_pst": "2025-07-11T01:00:00",
      "end_pst": "2025-07-12T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "4.05",
      "contrast": "4.45",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/PM25/+1",
      "start_pst": "2025-07-11T01:00:00",
      "end_pst": "2025-07-12T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.3942757391304347826086956521739130434782608695652",
      "contrast": "2.7057242608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/NO2/+1",
      "start_pst": "2025-07-11T01:00:00",
      "end_pst": "2025-07-12T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "3.3913043478260869565217391304347826086956521739130",
      "contrast": "2.7086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/NO2/+1",
      "start_pst": "2025-07-11T01:00:00",
      "end_pst": "2025-07-12T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.2",
      "town": "7.167501",
      "contrast": "6.032499",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/NO2/+1",
      "start_pst": "2025-07-11T01:00:00",
      "end_pst": "2025-07-12T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.2",
      "town": "7.2",
      "contrast": "6.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-11/NO2/+1",
      "start_pst": "2025-07-11T01:00:00",
      "end_pst": "2025-07-12T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "3.8001821666666666666666666666666666666666666666667",
      "contrast": "5.3998178333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-12/PM25/-1",
      "start_pst": "2025-07-11T23:00:00",
      "end_pst": "2025-07-12T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "3.7916666666666666666666666666666666666666666666667",
      "contrast": "5.4083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-12/PM25/-1",
      "start_pst": "2025-07-11T23:00:00",
      "end_pst": "2025-07-12T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.0070055217391304347826086956521739130434782608696",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-12/NO2/-1",
      "start_pst": "2025-07-11T23:00:00",
      "end_pst": "2025-07-12T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.0043478260869565217391304347826086956521739130435",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-12/NO2/-1",
      "start_pst": "2025-07-11T23:00:00",
      "end_pst": "2025-07-12T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.142971",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-12/NO2/-1",
      "start_pst": "2025-07-11T23:00:00",
      "end_pst": "2025-07-12T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-12/NO2/-1",
      "start_pst": "2025-07-11T23:00:00",
      "end_pst": "2025-07-12T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "3.9159980041666666666666666666666666666666666666667",
      "contrast": "5.2840019958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-12/PM25/+0",
      "start_pst": "2025-07-12T00:00:00",
      "end_pst": "2025-07-13T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "3.9083333333333333333333333333333333333333333333333",
      "contrast": "5.2916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-12/PM25/+0",
      "start_pst": "2025-07-12T00:00:00",
      "end_pst": "2025-07-13T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.0406786086956521739130434782608695652173913043478",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-12/NO2/+0",
      "start_pst": "2025-07-12T00:00:00",
      "end_pst": "2025-07-13T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.0391304347826086956521739130434782608695652173913",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-12/NO2/+0",
      "start_pst": "2025-07-12T00:00:00",
      "end_pst": "2025-07-13T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.142971",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-12/NO2/+0",
      "start_pst": "2025-07-12T00:00:00",
      "end_pst": "2025-07-13T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-12/NO2/+0",
      "start_pst": "2025-07-12T00:00:00",
      "end_pst": "2025-07-13T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "4.0069499625",
      "contrast": "5.1930500375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-12/PM25/+1",
      "start_pst": "2025-07-12T01:00:00",
      "end_pst": "2025-07-13T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "4.0",
      "contrast": "5.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-12/PM25/+1",
      "start_pst": "2025-07-12T01:00:00",
      "end_pst": "2025-07-13T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.0669289130434782608695652173913043478260869565217",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-12/NO2/+1",
      "start_pst": "2025-07-12T01:00:00",
      "end_pst": "2025-07-13T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.0652173913043478260869565217391304347826086956522",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-12/NO2/+1",
      "start_pst": "2025-07-12T01:00:00",
      "end_pst": "2025-07-13T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.142971",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-12/NO2/+1",
      "start_pst": "2025-07-12T01:00:00",
      "end_pst": "2025-07-13T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-12/NO2/+1",
      "start_pst": "2025-07-12T01:00:00",
      "end_pst": "2025-07-13T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.7195069",
      "contrast": "3.4804931",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-13/PM25/-1",
      "start_pst": "2025-07-12T23:00:00",
      "end_pst": "2025-07-13T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.7208333333333333333333333333333333333333333333333",
      "contrast": "3.4791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-13/PM25/-1",
      "start_pst": "2025-07-12T23:00:00",
      "end_pst": "2025-07-13T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.6078632173913043478260869565217391304347826086957",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-13/NO2/-1",
      "start_pst": "2025-07-12T23:00:00",
      "end_pst": "2025-07-13T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.6",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-13/NO2/-1",
      "start_pst": "2025-07-12T23:00:00",
      "end_pst": "2025-07-13T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.172215",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-13/NO2/-1",
      "start_pst": "2025-07-12T23:00:00",
      "end_pst": "2025-07-13T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.2",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-13/NO2/-1",
      "start_pst": "2025-07-12T23:00:00",
      "end_pst": "2025-07-13T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.659936725",
      "contrast": "3.540063275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-13/PM25/+0",
      "start_pst": "2025-07-13T00:00:00",
      "end_pst": "2025-07-14T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.6625",
      "contrast": "3.5375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-13/PM25/+0",
      "start_pst": "2025-07-13T00:00:00",
      "end_pst": "2025-07-14T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.4947494782608695652173913043478260869565217391304",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-13/NO2/+0",
      "start_pst": "2025-07-13T00:00:00",
      "end_pst": "2025-07-14T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.4869565217391304347826086956521739130434782608696",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-13/NO2/+0",
      "start_pst": "2025-07-13T00:00:00",
      "end_pst": "2025-07-14T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.468453",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-13/NO2/+0",
      "start_pst": "2025-07-13T00:00:00",
      "end_pst": "2025-07-14T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-13/NO2/+0",
      "start_pst": "2025-07-13T00:00:00",
      "end_pst": "2025-07-14T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.6341358",
      "contrast": "3.5658642",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-13/PM25/+1",
      "start_pst": "2025-07-13T01:00:00",
      "end_pst": "2025-07-14T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.6375",
      "contrast": "3.5625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-13/PM25/+1",
      "start_pst": "2025-07-13T01:00:00",
      "end_pst": "2025-07-14T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.4455066521739130434782608695652173913043478260870",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-13/NO2/+1",
      "start_pst": "2025-07-13T01:00:00",
      "end_pst": "2025-07-14T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.4347826086956521739130434782608695652173913043478",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-13/NO2/+1",
      "start_pst": "2025-07-13T01:00:00",
      "end_pst": "2025-07-14T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.468453",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-13/NO2/+1",
      "start_pst": "2025-07-13T01:00:00",
      "end_pst": "2025-07-14T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-13/NO2/+1",
      "start_pst": "2025-07-13T01:00:00",
      "end_pst": "2025-07-14T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "5.3853329916666666666666666666666666666666666666667",
      "contrast": "2.3146670083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-14/PM25/-1",
      "start_pst": "2025-07-13T23:00:00",
      "end_pst": "2025-07-14T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "5.3875",
      "contrast": "2.3125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-14/PM25/-1",
      "start_pst": "2025-07-13T23:00:00",
      "end_pst": "2025-07-14T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.9954586086956521739130434782608695652173913043478",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-14/NO2/-1",
      "start_pst": "2025-07-13T23:00:00",
      "end_pst": "2025-07-14T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.9913043478260869565217391304347826086956521739130",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-14/NO2/-1",
      "start_pst": "2025-07-13T23:00:00",
      "end_pst": "2025-07-14T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "10.26902",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-14/NO2/-1",
      "start_pst": "2025-07-13T23:00:00",
      "end_pst": "2025-07-14T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "10.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-14/NO2/-1",
      "start_pst": "2025-07-13T23:00:00",
      "end_pst": "2025-07-14T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "5.386457275",
      "contrast": "2.313542725",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-14/PM25/+0",
      "start_pst": "2025-07-14T00:00:00",
      "end_pst": "2025-07-15T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "5.3875",
      "contrast": "2.3125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-14/PM25/+0",
      "start_pst": "2025-07-14T00:00:00",
      "end_pst": "2025-07-15T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.9006517391304347826086956521739130434782608695652",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-14/NO2/+0",
      "start_pst": "2025-07-14T00:00:00",
      "end_pst": "2025-07-15T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.8956521739130434782608695652173913043478260869565",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-14/NO2/+0",
      "start_pst": "2025-07-14T00:00:00",
      "end_pst": "2025-07-15T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "10.26902",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-14/NO2/+0",
      "start_pst": "2025-07-14T00:00:00",
      "end_pst": "2025-07-15T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "10.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-14/NO2/+0",
      "start_pst": "2025-07-14T00:00:00",
      "end_pst": "2025-07-15T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "5.361304075",
      "contrast": "2.338695925",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-14/PM25/+1",
      "start_pst": "2025-07-14T01:00:00",
      "end_pst": "2025-07-15T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "5.3625",
      "contrast": "2.3375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-14/PM25/+1",
      "start_pst": "2025-07-14T01:00:00",
      "end_pst": "2025-07-15T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.7884189565217391304347826086956521739130434782609",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-14/NO2/+1",
      "start_pst": "2025-07-14T01:00:00",
      "end_pst": "2025-07-15T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.7826086956521739130434782608695652173913043478261",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-14/NO2/+1",
      "start_pst": "2025-07-14T01:00:00",
      "end_pst": "2025-07-15T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "10.26902",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-14/NO2/+1",
      "start_pst": "2025-07-14T01:00:00",
      "end_pst": "2025-07-15T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "10.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-14/NO2/+1",
      "start_pst": "2025-07-14T01:00:00",
      "end_pst": "2025-07-15T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.5119724875",
      "contrast": "1.5880275125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/PM25/-1",
      "start_pst": "2025-07-14T23:00:00",
      "end_pst": "2025-07-15T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.5125",
      "contrast": "1.5875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/PM25/-1",
      "start_pst": "2025-07-14T23:00:00",
      "end_pst": "2025-07-15T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "4.0411067826086956521739130434782608695652173913043",
      "contrast": "-0.4411067826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/NO2/-1",
      "start_pst": "2025-07-14T23:00:00",
      "end_pst": "2025-07-15T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "4.0391304347826086956521739130434782608695652173913",
      "contrast": "-0.4391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/NO2/-1",
      "start_pst": "2025-07-14T23:00:00",
      "end_pst": "2025-07-15T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "9.1489",
      "contrast": "-0.0489",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/NO2/-1",
      "start_pst": "2025-07-14T23:00:00",
      "end_pst": "2025-07-15T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "9.1",
      "contrast": "0.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/NO2/-1",
      "start_pst": "2025-07-14T23:00:00",
      "end_pst": "2025-07-15T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.7237415333333333333333333333333333333333333333333",
      "contrast": "1.3762584666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/PM25/+0",
      "start_pst": "2025-07-15T00:00:00",
      "end_pst": "2025-07-16T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.725",
      "contrast": "1.375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/PM25/+0",
      "start_pst": "2025-07-15T00:00:00",
      "end_pst": "2025-07-16T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "4.1617983478260869565217391304347826086956521739130",
      "contrast": "-0.5617983478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/NO2/+0",
      "start_pst": "2025-07-15T00:00:00",
      "end_pst": "2025-07-16T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "4.1608695652173913043478260869565217391304347826087",
      "contrast": "-0.5608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/NO2/+0",
      "start_pst": "2025-07-15T00:00:00",
      "end_pst": "2025-07-16T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "9.1489",
      "contrast": "-0.0489",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/NO2/+0",
      "start_pst": "2025-07-15T00:00:00",
      "end_pst": "2025-07-16T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "9.1",
      "contrast": "0.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/NO2/+0",
      "start_pst": "2025-07-15T00:00:00",
      "end_pst": "2025-07-16T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.9641794791666666666666666666666666666666666666667",
      "contrast": "1.1358205208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/PM25/+1",
      "start_pst": "2025-07-15T01:00:00",
      "end_pst": "2025-07-16T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.9666666666666666666666666666666666666666666666667",
      "contrast": "1.1333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/PM25/+1",
      "start_pst": "2025-07-15T01:00:00",
      "end_pst": "2025-07-16T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "4.2374835217391304347826086956521739130434782608696",
      "contrast": "-0.6374835217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/NO2/+1",
      "start_pst": "2025-07-15T01:00:00",
      "end_pst": "2025-07-16T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.6",
      "town": "4.2391304347826086956521739130434782608695652173913",
      "contrast": "-0.6391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/NO2/+1",
      "start_pst": "2025-07-15T01:00:00",
      "end_pst": "2025-07-16T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "9.1489",
      "contrast": "-0.0489",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/NO2/+1",
      "start_pst": "2025-07-15T01:00:00",
      "end_pst": "2025-07-16T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "9.1",
      "contrast": "0.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-15/NO2/+1",
      "start_pst": "2025-07-15T01:00:00",
      "end_pst": "2025-07-16T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "7.018747525",
      "contrast": "3.481252475",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/PM25/-1",
      "start_pst": "2025-07-15T23:00:00",
      "end_pst": "2025-07-16T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "7.025",
      "contrast": "3.475",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/PM25/-1",
      "start_pst": "2025-07-15T23:00:00",
      "end_pst": "2025-07-16T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "4.7841813043478260869565217391304347826086956521739",
      "contrast": "2.3158186956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/NO2/-1",
      "start_pst": "2025-07-15T23:00:00",
      "end_pst": "2025-07-16T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "4.7956521739130434782608695652173913043478260869565",
      "contrast": "2.3043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/NO2/-1",
      "start_pst": "2025-07-15T23:00:00",
      "end_pst": "2025-07-16T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "7.154109",
      "contrast": "7.145891",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/NO2/-1",
      "start_pst": "2025-07-15T23:00:00",
      "end_pst": "2025-07-16T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "7.2",
      "contrast": "7.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/NO2/-1",
      "start_pst": "2025-07-15T23:00:00",
      "end_pst": "2025-07-16T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "6.9616146458333333333333333333333333333333333333333",
      "contrast": "3.5383853541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/PM25/+0",
      "start_pst": "2025-07-16T00:00:00",
      "end_pst": "2025-07-17T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "6.9666666666666666666666666666666666666666666666667",
      "contrast": "3.5333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/PM25/+0",
      "start_pst": "2025-07-16T00:00:00",
      "end_pst": "2025-07-17T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "4.7352027826086956521739130434782608695652173913043",
      "contrast": "2.3647972173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/NO2/+0",
      "start_pst": "2025-07-16T00:00:00",
      "end_pst": "2025-07-17T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "4.7434782608695652173913043478260869565217391304348",
      "contrast": "2.3565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/NO2/+0",
      "start_pst": "2025-07-16T00:00:00",
      "end_pst": "2025-07-17T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "7.154109",
      "contrast": "7.145891",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/NO2/+0",
      "start_pst": "2025-07-16T00:00:00",
      "end_pst": "2025-07-17T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "7.2",
      "contrast": "7.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/NO2/+0",
      "start_pst": "2025-07-16T00:00:00",
      "end_pst": "2025-07-17T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "6.879152575",
      "contrast": "3.620847425",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/PM25/+1",
      "start_pst": "2025-07-16T01:00:00",
      "end_pst": "2025-07-17T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "6.8833333333333333333333333333333333333333333333333",
      "contrast": "3.6166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/PM25/+1",
      "start_pst": "2025-07-16T01:00:00",
      "end_pst": "2025-07-17T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "4.6924401304347826086956521739130434782608695652174",
      "contrast": "2.4075598695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/NO2/+1",
      "start_pst": "2025-07-16T01:00:00",
      "end_pst": "2025-07-17T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "4.7",
      "contrast": "2.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/NO2/+1",
      "start_pst": "2025-07-16T01:00:00",
      "end_pst": "2025-07-17T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "7.154109",
      "contrast": "7.145891",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/NO2/+1",
      "start_pst": "2025-07-16T01:00:00",
      "end_pst": "2025-07-17T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "7.2",
      "contrast": "7.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-16/NO2/+1",
      "start_pst": "2025-07-16T01:00:00",
      "end_pst": "2025-07-17T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "7.5173180875",
      "contrast": "2.6826819125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/PM25/-1",
      "start_pst": "2025-07-16T23:00:00",
      "end_pst": "2025-07-17T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "7.5208333333333333333333333333333333333333333333333",
      "contrast": "2.6791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/PM25/-1",
      "start_pst": "2025-07-16T23:00:00",
      "end_pst": "2025-07-17T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.0025172173913043478260869565217391304347826086957",
      "contrast": "3.9974827826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/NO2/-1",
      "start_pst": "2025-07-16T23:00:00",
      "end_pst": "2025-07-17T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.0",
      "contrast": "4.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/NO2/-1",
      "start_pst": "2025-07-16T23:00:00",
      "end_pst": "2025-07-17T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "6.589997",
      "contrast": "7.110003",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/NO2/-1",
      "start_pst": "2025-07-16T23:00:00",
      "end_pst": "2025-07-17T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "6.6",
      "contrast": "7.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/NO2/-1",
      "start_pst": "2025-07-16T23:00:00",
      "end_pst": "2025-07-17T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "7.5078711875",
      "contrast": "2.6921288125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/PM25/+0",
      "start_pst": "2025-07-17T00:00:00",
      "end_pst": "2025-07-18T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "7.5125",
      "contrast": "2.6875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/PM25/+0",
      "start_pst": "2025-07-17T00:00:00",
      "end_pst": "2025-07-18T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.1003903913043478260869565217391304347826086956522",
      "contrast": "3.8996096086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/NO2/+0",
      "start_pst": "2025-07-17T00:00:00",
      "end_pst": "2025-07-18T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.1",
      "contrast": "3.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/NO2/+0",
      "start_pst": "2025-07-17T00:00:00",
      "end_pst": "2025-07-18T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "6.589997",
      "contrast": "7.110003",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/NO2/+0",
      "start_pst": "2025-07-17T00:00:00",
      "end_pst": "2025-07-18T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "6.6",
      "contrast": "7.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/NO2/+0",
      "start_pst": "2025-07-17T00:00:00",
      "end_pst": "2025-07-18T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "7.4883185166666666666666666666666666666666666666667",
      "contrast": "2.7116814833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/PM25/+1",
      "start_pst": "2025-07-17T01:00:00",
      "end_pst": "2025-07-18T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "7.4916666666666666666666666666666666666666666666667",
      "contrast": "2.7083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/PM25/+1",
      "start_pst": "2025-07-17T01:00:00",
      "end_pst": "2025-07-18T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.2099120434782608695652173913043478260869565217391",
      "contrast": "3.7900879565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/NO2/+1",
      "start_pst": "2025-07-17T01:00:00",
      "end_pst": "2025-07-18T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.2086956521739130434782608695652173913043478260870",
      "contrast": "3.7913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/NO2/+1",
      "start_pst": "2025-07-17T01:00:00",
      "end_pst": "2025-07-18T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "6.589997",
      "contrast": "7.110003",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/NO2/+1",
      "start_pst": "2025-07-17T01:00:00",
      "end_pst": "2025-07-18T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "6.6",
      "contrast": "7.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-17/NO2/+1",
      "start_pst": "2025-07-17T01:00:00",
      "end_pst": "2025-07-18T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "7.4487445958333333333333333333333333333333333333333",
      "contrast": "3.4512554041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/PM25/-1",
      "start_pst": "2025-07-17T23:00:00",
      "end_pst": "2025-07-18T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "7.45",
      "contrast": "3.45",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/PM25/-1",
      "start_pst": "2025-07-17T23:00:00",
      "end_pst": "2025-07-18T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.5987622608695652173913043478260869565217391304348",
      "contrast": "2.0012377391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/NO2/-1",
      "start_pst": "2025-07-17T23:00:00",
      "end_pst": "2025-07-18T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.5913043478260869565217391304347826086956521739130",
      "contrast": "2.0086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/NO2/-1",
      "start_pst": "2025-07-17T23:00:00",
      "end_pst": "2025-07-18T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "9.081662",
      "contrast": "6.218338",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/NO2/-1",
      "start_pst": "2025-07-17T23:00:00",
      "end_pst": "2025-07-18T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "9.1",
      "contrast": "6.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/NO2/-1",
      "start_pst": "2025-07-17T23:00:00",
      "end_pst": "2025-07-18T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "7.4149352125",
      "contrast": "3.4850647875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/PM25/+0",
      "start_pst": "2025-07-18T00:00:00",
      "end_pst": "2025-07-19T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "7.4166666666666666666666666666666666666666666666667",
      "contrast": "3.4833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/PM25/+0",
      "start_pst": "2025-07-18T00:00:00",
      "end_pst": "2025-07-19T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.5439521304347826086956521739130434782608695652174",
      "contrast": "2.0560478695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/NO2/+0",
      "start_pst": "2025-07-18T00:00:00",
      "end_pst": "2025-07-19T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.5347826086956521739130434782608695652173913043478",
      "contrast": "2.0652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/NO2/+0",
      "start_pst": "2025-07-18T00:00:00",
      "end_pst": "2025-07-19T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "9.081662",
      "contrast": "6.218338",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/NO2/+0",
      "start_pst": "2025-07-18T00:00:00",
      "end_pst": "2025-07-19T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "9.1",
      "contrast": "6.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/NO2/+0",
      "start_pst": "2025-07-18T00:00:00",
      "end_pst": "2025-07-19T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "7.4211276791666666666666666666666666666666666666667",
      "contrast": "3.4788723208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/PM25/+1",
      "start_pst": "2025-07-18T01:00:00",
      "end_pst": "2025-07-19T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "7.425",
      "contrast": "3.475",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/PM25/+1",
      "start_pst": "2025-07-18T01:00:00",
      "end_pst": "2025-07-19T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.6013032608695652173913043478260869565217391304348",
      "contrast": "1.9986967391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/NO2/+1",
      "start_pst": "2025-07-18T01:00:00",
      "end_pst": "2025-07-19T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.5913043478260869565217391304347826086956521739130",
      "contrast": "2.0086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/NO2/+1",
      "start_pst": "2025-07-18T01:00:00",
      "end_pst": "2025-07-19T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "9.081662",
      "contrast": "6.218338",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/NO2/+1",
      "start_pst": "2025-07-18T01:00:00",
      "end_pst": "2025-07-19T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "9.1",
      "contrast": "6.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-18/NO2/+1",
      "start_pst": "2025-07-18T01:00:00",
      "end_pst": "2025-07-19T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "7.3391691375",
      "contrast": "0.7608308625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/PM25/-1",
      "start_pst": "2025-07-18T23:00:00",
      "end_pst": "2025-07-19T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "7.3416666666666666666666666666666666666666666666667",
      "contrast": "0.7583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/PM25/-1",
      "start_pst": "2025-07-18T23:00:00",
      "end_pst": "2025-07-19T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "3.8248133478260869565217391304347826086956521739130",
      "contrast": "0.3751866521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/NO2/-1",
      "start_pst": "2025-07-18T23:00:00",
      "end_pst": "2025-07-19T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "3.8217391304347826086956521739130434782608695652174",
      "contrast": "0.3782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/NO2/-1",
      "start_pst": "2025-07-18T23:00:00",
      "end_pst": "2025-07-19T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "6.640565",
      "contrast": "3.559435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/NO2/-1",
      "start_pst": "2025-07-18T23:00:00",
      "end_pst": "2025-07-19T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "6.6",
      "contrast": "3.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/NO2/-1",
      "start_pst": "2025-07-18T23:00:00",
      "end_pst": "2025-07-19T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "7.2934424791666666666666666666666666666666666666667",
      "contrast": "0.8065575208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/PM25/+0",
      "start_pst": "2025-07-19T00:00:00",
      "end_pst": "2025-07-20T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "7.2958333333333333333333333333333333333333333333333",
      "contrast": "0.8041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/PM25/+0",
      "start_pst": "2025-07-19T00:00:00",
      "end_pst": "2025-07-20T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "3.7630155217391304347826086956521739130434782608696",
      "contrast": "0.4369844782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/NO2/+0",
      "start_pst": "2025-07-19T00:00:00",
      "end_pst": "2025-07-20T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "3.7608695652173913043478260869565217391304347826087",
      "contrast": "0.4391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/NO2/+0",
      "start_pst": "2025-07-19T00:00:00",
      "end_pst": "2025-07-20T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "6.640565",
      "contrast": "3.559435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/NO2/+0",
      "start_pst": "2025-07-19T00:00:00",
      "end_pst": "2025-07-20T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "6.6",
      "contrast": "3.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/NO2/+0",
      "start_pst": "2025-07-19T00:00:00",
      "end_pst": "2025-07-20T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "7.241666725",
      "contrast": "0.858333275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/PM25/+1",
      "start_pst": "2025-07-19T01:00:00",
      "end_pst": "2025-07-20T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "7.2416666666666666666666666666666666666666666666667",
      "contrast": "0.8583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/PM25/+1",
      "start_pst": "2025-07-19T01:00:00",
      "end_pst": "2025-07-20T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "3.6352747391304347826086956521739130434782608695652",
      "contrast": "0.5647252608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/NO2/+1",
      "start_pst": "2025-07-19T01:00:00",
      "end_pst": "2025-07-20T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.2",
      "town": "3.6347826086956521739130434782608695652173913043478",
      "contrast": "0.5652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/NO2/+1",
      "start_pst": "2025-07-19T01:00:00",
      "end_pst": "2025-07-20T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "6.311896",
      "contrast": "3.888104",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/NO2/+1",
      "start_pst": "2025-07-19T01:00:00",
      "end_pst": "2025-07-20T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "6.3",
      "contrast": "3.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-19/NO2/+1",
      "start_pst": "2025-07-19T01:00:00",
      "end_pst": "2025-07-20T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "6.4368897041666666666666666666666666666666666666667",
      "contrast": "1.8631102958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/PM25/-1",
      "start_pst": "2025-07-19T23:00:00",
      "end_pst": "2025-07-20T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "6.4458333333333333333333333333333333333333333333333",
      "contrast": "1.8541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/PM25/-1",
      "start_pst": "2025-07-19T23:00:00",
      "end_pst": "2025-07-20T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.5440831304347826086956521739130434782608695652174",
      "contrast": "1.8559168695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/NO2/-1",
      "start_pst": "2025-07-19T23:00:00",
      "end_pst": "2025-07-20T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.5434782608695652173913043478260869565217391304348",
      "contrast": "1.8565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/NO2/-1",
      "start_pst": "2025-07-19T23:00:00",
      "end_pst": "2025-07-20T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.1",
      "town": "9.175453",
      "contrast": "4.924547",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/NO2/-1",
      "start_pst": "2025-07-19T23:00:00",
      "end_pst": "2025-07-20T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.1",
      "town": "9.2",
      "contrast": "4.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/NO2/-1",
      "start_pst": "2025-07-19T23:00:00",
      "end_pst": "2025-07-20T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "6.4339556458333333333333333333333333333333333333333",
      "contrast": "1.8660443541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/PM25/+0",
      "start_pst": "2025-07-20T00:00:00",
      "end_pst": "2025-07-21T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "6.4416666666666666666666666666666666666666666666667",
      "contrast": "1.8583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/PM25/+0",
      "start_pst": "2025-07-20T00:00:00",
      "end_pst": "2025-07-21T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.6415542173913043478260869565217391304347826086957",
      "contrast": "1.7584457826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/NO2/+0",
      "start_pst": "2025-07-20T00:00:00",
      "end_pst": "2025-07-21T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.6434782608695652173913043478260869565217391304348",
      "contrast": "1.7565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/NO2/+0",
      "start_pst": "2025-07-20T00:00:00",
      "end_pst": "2025-07-21T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.1",
      "town": "9.175453",
      "contrast": "4.924547",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/NO2/+0",
      "start_pst": "2025-07-20T00:00:00",
      "end_pst": "2025-07-21T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.1",
      "town": "9.2",
      "contrast": "4.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/NO2/+0",
      "start_pst": "2025-07-20T00:00:00",
      "end_pst": "2025-07-21T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "6.4185553958333333333333333333333333333333333333333",
      "contrast": "1.8814446041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/PM25/+1",
      "start_pst": "2025-07-20T01:00:00",
      "end_pst": "2025-07-21T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "6.4291666666666666666666666666666666666666666666667",
      "contrast": "1.8708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/PM25/+1",
      "start_pst": "2025-07-20T01:00:00",
      "end_pst": "2025-07-21T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.6338437391304347826086956521739130434782608695652",
      "contrast": "1.7661562608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/NO2/+1",
      "start_pst": "2025-07-20T01:00:00",
      "end_pst": "2025-07-21T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "4.6347826086956521739130434782608695652173913043478",
      "contrast": "1.7652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/NO2/+1",
      "start_pst": "2025-07-20T01:00:00",
      "end_pst": "2025-07-21T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.1",
      "town": "9.175453",
      "contrast": "4.924547",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/NO2/+1",
      "start_pst": "2025-07-20T01:00:00",
      "end_pst": "2025-07-21T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.1",
      "town": "9.2",
      "contrast": "4.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-20/NO2/+1",
      "start_pst": "2025-07-20T01:00:00",
      "end_pst": "2025-07-21T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "5.7548454041666666666666666666666666666666666666667",
      "contrast": "2.7451545958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/PM25/-1",
      "start_pst": "2025-07-20T23:00:00",
      "end_pst": "2025-07-21T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "5.7583333333333333333333333333333333333333333333333",
      "contrast": "2.7416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/PM25/-1",
      "start_pst": "2025-07-20T23:00:00",
      "end_pst": "2025-07-21T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "5.2411422173913043478260869565217391304347826086957",
      "contrast": "0.4588577826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/NO2/-1",
      "start_pst": "2025-07-20T23:00:00",
      "end_pst": "2025-07-21T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "5.2478260869565217391304347826086956521739130434783",
      "contrast": "0.4521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/NO2/-1",
      "start_pst": "2025-07-20T23:00:00",
      "end_pst": "2025-07-21T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "8.408406",
      "contrast": "3.491594",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/NO2/-1",
      "start_pst": "2025-07-20T23:00:00",
      "end_pst": "2025-07-21T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "8.4",
      "contrast": "3.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/NO2/-1",
      "start_pst": "2025-07-20T23:00:00",
      "end_pst": "2025-07-21T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "5.7802106583333333333333333333333333333333333333333",
      "contrast": "2.7197893416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/PM25/+0",
      "start_pst": "2025-07-21T00:00:00",
      "end_pst": "2025-07-22T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "5.7833333333333333333333333333333333333333333333333",
      "contrast": "2.7166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/PM25/+0",
      "start_pst": "2025-07-21T00:00:00",
      "end_pst": "2025-07-22T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "5.2052138695652173913043478260869565217391304347826",
      "contrast": "0.4947861304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/NO2/+0",
      "start_pst": "2025-07-21T00:00:00",
      "end_pst": "2025-07-22T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "5.2086956521739130434782608695652173913043478260870",
      "contrast": "0.4913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/NO2/+0",
      "start_pst": "2025-07-21T00:00:00",
      "end_pst": "2025-07-22T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "8.408406",
      "contrast": "3.491594",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/NO2/+0",
      "start_pst": "2025-07-21T00:00:00",
      "end_pst": "2025-07-22T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "8.4",
      "contrast": "3.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/NO2/+0",
      "start_pst": "2025-07-21T00:00:00",
      "end_pst": "2025-07-22T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "5.7978046583333333333333333333333333333333333333333",
      "contrast": "2.7021953416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/PM25/+1",
      "start_pst": "2025-07-21T01:00:00",
      "end_pst": "2025-07-22T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "5.8",
      "contrast": "2.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/PM25/+1",
      "start_pst": "2025-07-21T01:00:00",
      "end_pst": "2025-07-22T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "5.2562859130434782608695652173913043478260869565217",
      "contrast": "0.4437140869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/NO2/+1",
      "start_pst": "2025-07-21T01:00:00",
      "end_pst": "2025-07-22T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "5.2608695652173913043478260869565217391304347826087",
      "contrast": "0.4391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/NO2/+1",
      "start_pst": "2025-07-21T01:00:00",
      "end_pst": "2025-07-22T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "8.408406",
      "contrast": "3.491594",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/NO2/+1",
      "start_pst": "2025-07-21T01:00:00",
      "end_pst": "2025-07-22T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "8.4",
      "contrast": "3.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-21/NO2/+1",
      "start_pst": "2025-07-21T01:00:00",
      "end_pst": "2025-07-22T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "7.9524436541666666666666666666666666666666666666667",
      "contrast": "1.3475563458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/PM25/-1",
      "start_pst": "2025-07-21T23:00:00",
      "end_pst": "2025-07-22T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "7.9458333333333333333333333333333333333333333333333",
      "contrast": "1.3541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/PM25/-1",
      "start_pst": "2025-07-21T23:00:00",
      "end_pst": "2025-07-22T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.0877289130434782608695652173913043478260869565217",
      "contrast": "0.4122710869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/NO2/-1",
      "start_pst": "2025-07-21T23:00:00",
      "end_pst": "2025-07-22T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.0869565217391304347826086956521739130434782608696",
      "contrast": "0.4130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/NO2/-1",
      "start_pst": "2025-07-21T23:00:00",
      "end_pst": "2025-07-22T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "7.214542",
      "contrast": "6.085458",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/NO2/-1",
      "start_pst": "2025-07-21T23:00:00",
      "end_pst": "2025-07-22T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "7.2",
      "contrast": "6.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/NO2/-1",
      "start_pst": "2025-07-21T23:00:00",
      "end_pst": "2025-07-22T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "8.0472458166666666666666666666666666666666666666667",
      "contrast": "1.2527541833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/PM25/+0",
      "start_pst": "2025-07-22T00:00:00",
      "end_pst": "2025-07-23T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "8.0416666666666666666666666666666666666666666666667",
      "contrast": "1.2583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/PM25/+0",
      "start_pst": "2025-07-22T00:00:00",
      "end_pst": "2025-07-23T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.1162544347826086956521739130434782608695652173913",
      "contrast": "0.3837455652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/NO2/+0",
      "start_pst": "2025-07-22T00:00:00",
      "end_pst": "2025-07-23T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.1173913043478260869565217391304347826086956521739",
      "contrast": "0.3826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/NO2/+0",
      "start_pst": "2025-07-22T00:00:00",
      "end_pst": "2025-07-23T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "7.214542",
      "contrast": "6.085458",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/NO2/+0",
      "start_pst": "2025-07-22T00:00:00",
      "end_pst": "2025-07-23T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "7.2",
      "contrast": "6.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/NO2/+0",
      "start_pst": "2025-07-22T00:00:00",
      "end_pst": "2025-07-23T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "8.1575013958333333333333333333333333333333333333333",
      "contrast": "1.1424986041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/PM25/+1",
      "start_pst": "2025-07-22T01:00:00",
      "end_pst": "2025-07-23T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "8.15",
      "contrast": "1.15",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/PM25/+1",
      "start_pst": "2025-07-22T01:00:00",
      "end_pst": "2025-07-23T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.1351822272727272727272727272727272727272727272727",
      "contrast": "0.3648177727272727272727272727272727272727272727273",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/NO2/+1",
      "start_pst": "2025-07-22T01:00:00",
      "end_pst": "2025-07-23T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.1363636363636363636363636363636363636363636363636",
      "contrast": "0.3636363636363636363636363636363636363636363636364",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/NO2/+1",
      "start_pst": "2025-07-22T01:00:00",
      "end_pst": "2025-07-23T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "7.214542",
      "contrast": "6.085458",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/NO2/+1",
      "start_pst": "2025-07-22T01:00:00",
      "end_pst": "2025-07-23T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "7.2",
      "contrast": "6.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-22/NO2/+1",
      "start_pst": "2025-07-22T01:00:00",
      "end_pst": "2025-07-23T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "8.8610535409090909090909090909090909090909090909091",
      "contrast": "0.8389464590909090909090909090909090909090909090909",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-23/PM25/-1",
      "start_pst": "2025-07-22T23:00:00",
      "end_pst": "2025-07-23T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "8.8545454545454545454545454545454545454545454545455",
      "contrast": "0.8454545454545454545454545454545454545454545454545",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-23/PM25/-1",
      "start_pst": "2025-07-22T23:00:00",
      "end_pst": "2025-07-23T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-07-23/NO2/-1",
      "start_pst": "2025-07-22T23:00:00",
      "end_pst": "2025-07-23T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-07-23/NO2/-1",
      "start_pst": "2025-07-22T23:00:00",
      "end_pst": "2025-07-23T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-07-23/NO2/-1",
      "start_pst": "2025-07-22T23:00:00",
      "end_pst": "2025-07-23T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-07-23/NO2/-1",
      "start_pst": "2025-07-22T23:00:00",
      "end_pst": "2025-07-23T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "8.9018768681818181818181818181818181818181818181818",
      "contrast": "0.7981231318181818181818181818181818181818181818182",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-23/PM25/+0",
      "start_pst": "2025-07-23T00:00:00",
      "end_pst": "2025-07-24T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "8.8954545454545454545454545454545454545454545454545",
      "contrast": "0.8045454545454545454545454545454545454545454545455",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-23/PM25/+0",
      "start_pst": "2025-07-23T00:00:00",
      "end_pst": "2025-07-24T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 15,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-07-23/NO2/+0",
      "start_pst": "2025-07-23T00:00:00",
      "end_pst": "2025-07-24T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 15,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-07-23/NO2/+0",
      "start_pst": "2025-07-23T00:00:00",
      "end_pst": "2025-07-24T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 15,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-07-23/NO2/+0",
      "start_pst": "2025-07-23T00:00:00",
      "end_pst": "2025-07-24T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 15,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-07-23/NO2/+0",
      "start_pst": "2025-07-23T00:00:00",
      "end_pst": "2025-07-24T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "8.9375370045454545454545454545454545454545454545455",
      "contrast": "0.7624629954545454545454545454545454545454545454545",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-23/PM25/+1",
      "start_pst": "2025-07-23T01:00:00",
      "end_pst": "2025-07-24T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "8.9318181818181818181818181818181818181818181818182",
      "contrast": "0.7681818181818181818181818181818181818181818181818",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-23/PM25/+1",
      "start_pst": "2025-07-23T01:00:00",
      "end_pst": "2025-07-24T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-07-23/NO2/+1",
      "start_pst": "2025-07-23T01:00:00",
      "end_pst": "2025-07-24T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-07-23/NO2/+1",
      "start_pst": "2025-07-23T01:00:00",
      "end_pst": "2025-07-24T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-07-23/NO2/+1",
      "start_pst": "2025-07-23T01:00:00",
      "end_pst": "2025-07-24T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-07-23/NO2/+1",
      "start_pst": "2025-07-23T01:00:00",
      "end_pst": "2025-07-24T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "7.0586645631578947368421052631578947368421052631579",
      "contrast": "3.0413354368421052631578947368421052631578947368421",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/PM25/-1",
      "start_pst": "2025-07-23T23:00:00",
      "end_pst": "2025-07-24T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "7.0578947368421052631578947368421052631578947368421",
      "contrast": "3.0421052631578947368421052631578947368421052631579",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/PM25/-1",
      "start_pst": "2025-07-23T23:00:00",
      "end_pst": "2025-07-24T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "6.0368736863636363636363636363636363636363636363636",
      "contrast": "0.6631263136363636363636363636363636363636363636364",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/NO2/-1",
      "start_pst": "2025-07-23T23:00:00",
      "end_pst": "2025-07-24T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "6.0363636363636363636363636363636363636363636363636",
      "contrast": "0.6636363636363636363636363636363636363636363636364",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/NO2/-1",
      "start_pst": "2025-07-23T23:00:00",
      "end_pst": "2025-07-24T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.8",
      "town": "8.9016247",
      "contrast": "13.8983753",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/NO2/-1",
      "start_pst": "2025-07-23T23:00:00",
      "end_pst": "2025-07-24T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.8",
      "town": "8.9",
      "contrast": "13.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/NO2/-1",
      "start_pst": "2025-07-23T23:00:00",
      "end_pst": "2025-07-24T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "6.7232730894736842105263157894736842105263157894737",
      "contrast": "3.3767269105263157894736842105263157894736842105263",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/PM25/+0",
      "start_pst": "2025-07-24T00:00:00",
      "end_pst": "2025-07-25T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "6.7210526315789473684210526315789473684210526315789",
      "contrast": "3.3789473684210526315789473684210526315789473684211",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/PM25/+0",
      "start_pst": "2025-07-24T00:00:00",
      "end_pst": "2025-07-25T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "6.1351881826086956521739130434782608695652173913043",
      "contrast": "0.5648118173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/NO2/+0",
      "start_pst": "2025-07-24T00:00:00",
      "end_pst": "2025-07-25T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "6.1347826086956521739130434782608695652173913043478",
      "contrast": "0.5652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/NO2/+0",
      "start_pst": "2025-07-24T00:00:00",
      "end_pst": "2025-07-25T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.8",
      "town": "8.9016247",
      "contrast": "13.8983753",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/NO2/+0",
      "start_pst": "2025-07-24T00:00:00",
      "end_pst": "2025-07-25T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.8",
      "town": "8.9",
      "contrast": "13.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/NO2/+0",
      "start_pst": "2025-07-24T00:00:00",
      "end_pst": "2025-07-25T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "6.3850995105263157894736842105263157894736842105263",
      "contrast": "3.7149004894736842105263157894736842105263157894737",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/PM25/+1",
      "start_pst": "2025-07-24T01:00:00",
      "end_pst": "2025-07-25T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "6.3842105263157894736842105263157894736842105263158",
      "contrast": "3.7157894736842105263157894736842105263157894736842",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/PM25/+1",
      "start_pst": "2025-07-24T01:00:00",
      "end_pst": "2025-07-25T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "6.2286651",
      "contrast": "0.4713349",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/NO2/+1",
      "start_pst": "2025-07-24T01:00:00",
      "end_pst": "2025-07-25T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "6.2260869565217391304347826086956521739130434782609",
      "contrast": "0.4739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/NO2/+1",
      "start_pst": "2025-07-24T01:00:00",
      "end_pst": "2025-07-25T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.8",
      "town": "8.9016247",
      "contrast": "13.8983753",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/NO2/+1",
      "start_pst": "2025-07-24T01:00:00",
      "end_pst": "2025-07-25T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.8",
      "town": "8.9",
      "contrast": "13.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-24/NO2/+1",
      "start_pst": "2025-07-24T01:00:00",
      "end_pst": "2025-07-25T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "3.9381851958333333333333333333333333333333333333333",
      "contrast": "3.8618148041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/PM25/-1",
      "start_pst": "2025-07-24T23:00:00",
      "end_pst": "2025-07-25T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "3.9416666666666666666666666666666666666666666666667",
      "contrast": "3.8583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/PM25/-1",
      "start_pst": "2025-07-24T23:00:00",
      "end_pst": "2025-07-25T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "6.3140697869565217391304347826086956521739130434783",
      "contrast": "-1.9140697869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/NO2/-1",
      "start_pst": "2025-07-24T23:00:00",
      "end_pst": "2025-07-25T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "6.3043478260869565217391304347826086956521739130435",
      "contrast": "-1.9043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/NO2/-1",
      "start_pst": "2025-07-24T23:00:00",
      "end_pst": "2025-07-25T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "9.3857527",
      "contrast": "2.1142473",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/NO2/-1",
      "start_pst": "2025-07-24T23:00:00",
      "end_pst": "2025-07-25T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "9.4",
      "contrast": "2.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/NO2/-1",
      "start_pst": "2025-07-24T23:00:00",
      "end_pst": "2025-07-25T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "3.9309392",
      "contrast": "3.8690608",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/PM25/+0",
      "start_pst": "2025-07-25T00:00:00",
      "end_pst": "2025-07-26T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "3.9333333333333333333333333333333333333333333333333",
      "contrast": "3.8666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/PM25/+0",
      "start_pst": "2025-07-25T00:00:00",
      "end_pst": "2025-07-26T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "6.2422622173913043478260869565217391304347826086957",
      "contrast": "-1.8422622173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/NO2/+0",
      "start_pst": "2025-07-25T00:00:00",
      "end_pst": "2025-07-26T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "6.2304347826086956521739130434782608695652173913043",
      "contrast": "-1.8304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/NO2/+0",
      "start_pst": "2025-07-25T00:00:00",
      "end_pst": "2025-07-26T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "9.3857527",
      "contrast": "2.1142473",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/NO2/+0",
      "start_pst": "2025-07-25T00:00:00",
      "end_pst": "2025-07-26T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "9.4",
      "contrast": "2.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/NO2/+0",
      "start_pst": "2025-07-25T00:00:00",
      "end_pst": "2025-07-26T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "3.9264354958333333333333333333333333333333333333333",
      "contrast": "3.8735645041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/PM25/+1",
      "start_pst": "2025-07-25T01:00:00",
      "end_pst": "2025-07-26T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "3.9291666666666666666666666666666666666666666666667",
      "contrast": "3.8708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/PM25/+1",
      "start_pst": "2025-07-25T01:00:00",
      "end_pst": "2025-07-26T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "6.1783985652173913043478260869565217391304347826087",
      "contrast": "-1.7783985652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/NO2/+1",
      "start_pst": "2025-07-25T01:00:00",
      "end_pst": "2025-07-26T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.4",
      "town": "6.1695652173913043478260869565217391304347826086957",
      "contrast": "-1.7695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/NO2/+1",
      "start_pst": "2025-07-25T01:00:00",
      "end_pst": "2025-07-26T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "9.3857527",
      "contrast": "2.1142473",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/NO2/+1",
      "start_pst": "2025-07-25T01:00:00",
      "end_pst": "2025-07-26T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "9.4",
      "contrast": "2.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-25/NO2/+1",
      "start_pst": "2025-07-25T01:00:00",
      "end_pst": "2025-07-26T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "4.5832563291666666666666666666666666666666666666667",
      "contrast": "3.7167436708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/PM25/-1",
      "start_pst": "2025-07-25T23:00:00",
      "end_pst": "2025-07-26T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "4.5791666666666666666666666666666666666666666666667",
      "contrast": "3.7208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/PM25/-1",
      "start_pst": "2025-07-25T23:00:00",
      "end_pst": "2025-07-26T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "5.1597682304347826086956521739130434782608695652174",
      "contrast": "-0.0597682304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/NO2/-1",
      "start_pst": "2025-07-25T23:00:00",
      "end_pst": "2025-07-26T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "5.1565217391304347826086956521739130434782608695652",
      "contrast": "-0.0565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/NO2/-1",
      "start_pst": "2025-07-25T23:00:00",
      "end_pst": "2025-07-26T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "7.763649",
      "contrast": "5.336351",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/NO2/-1",
      "start_pst": "2025-07-25T23:00:00",
      "end_pst": "2025-07-26T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "7.8",
      "contrast": "5.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/NO2/-1",
      "start_pst": "2025-07-25T23:00:00",
      "end_pst": "2025-07-26T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "4.653753325",
      "contrast": "3.646246675",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/PM25/+0",
      "start_pst": "2025-07-26T00:00:00",
      "end_pst": "2025-07-27T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "4.65",
      "contrast": "3.65",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/PM25/+0",
      "start_pst": "2025-07-26T00:00:00",
      "end_pst": "2025-07-27T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "5.1125292782608695652173913043478260869565217391304",
      "contrast": "-0.0125292782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/NO2/+0",
      "start_pst": "2025-07-26T00:00:00",
      "end_pst": "2025-07-27T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "5.1130434782608695652173913043478260869565217391304",
      "contrast": "-0.0130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/NO2/+0",
      "start_pst": "2025-07-26T00:00:00",
      "end_pst": "2025-07-27T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "7.763649",
      "contrast": "5.336351",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/NO2/+0",
      "start_pst": "2025-07-26T00:00:00",
      "end_pst": "2025-07-27T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "7.8",
      "contrast": "5.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/NO2/+0",
      "start_pst": "2025-07-26T00:00:00",
      "end_pst": "2025-07-27T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "4.7216436208333333333333333333333333333333333333333",
      "contrast": "3.5783563791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/PM25/+1",
      "start_pst": "2025-07-26T01:00:00",
      "end_pst": "2025-07-27T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "4.7166666666666666666666666666666666666666666666667",
      "contrast": "3.5833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/PM25/+1",
      "start_pst": "2025-07-26T01:00:00",
      "end_pst": "2025-07-27T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "5.0407901434782608695652173913043478260869565217391",
      "contrast": "0.0592098565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/NO2/+1",
      "start_pst": "2025-07-26T01:00:00",
      "end_pst": "2025-07-27T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "5.0391304347826086956521739130434782608695652173913",
      "contrast": "0.0608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/NO2/+1",
      "start_pst": "2025-07-26T01:00:00",
      "end_pst": "2025-07-27T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "7.763649",
      "contrast": "5.336351",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/NO2/+1",
      "start_pst": "2025-07-26T01:00:00",
      "end_pst": "2025-07-27T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "7.8",
      "contrast": "5.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-26/NO2/+1",
      "start_pst": "2025-07-26T01:00:00",
      "end_pst": "2025-07-27T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.43294105",
      "contrast": "3.76705895",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/PM25/-1",
      "start_pst": "2025-07-26T23:00:00",
      "end_pst": "2025-07-27T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.4416666666666666666666666666666666666666666666667",
      "contrast": "3.7583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/PM25/-1",
      "start_pst": "2025-07-26T23:00:00",
      "end_pst": "2025-07-27T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "3.9022864956521739130434782608695652173913043478261",
      "contrast": "0.3977135043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/NO2/-1",
      "start_pst": "2025-07-26T23:00:00",
      "end_pst": "2025-07-27T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "3.9",
      "contrast": "0.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/NO2/-1",
      "start_pst": "2025-07-26T23:00:00",
      "end_pst": "2025-07-27T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "7.811532",
      "contrast": "0.988468",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/NO2/-1",
      "start_pst": "2025-07-26T23:00:00",
      "end_pst": "2025-07-27T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "7.8",
      "contrast": "1.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/NO2/-1",
      "start_pst": "2025-07-26T23:00:00",
      "end_pst": "2025-07-27T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.4714200",
      "contrast": "3.7285800",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/PM25/+0",
      "start_pst": "2025-07-27T00:00:00",
      "end_pst": "2025-07-28T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.4833333333333333333333333333333333333333333333333",
      "contrast": "3.7166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/PM25/+0",
      "start_pst": "2025-07-27T00:00:00",
      "end_pst": "2025-07-28T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "3.9017545739130434782608695652173913043478260869565",
      "contrast": "0.3982454260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/NO2/+0",
      "start_pst": "2025-07-27T00:00:00",
      "end_pst": "2025-07-28T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "3.8956521739130434782608695652173913043478260869565",
      "contrast": "0.4043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/NO2/+0",
      "start_pst": "2025-07-27T00:00:00",
      "end_pst": "2025-07-28T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "7.811532",
      "contrast": "0.988468",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/NO2/+0",
      "start_pst": "2025-07-27T00:00:00",
      "end_pst": "2025-07-28T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "7.8",
      "contrast": "1.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/NO2/+0",
      "start_pst": "2025-07-27T00:00:00",
      "end_pst": "2025-07-28T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.5149660416666666666666666666666666666666666666667",
      "contrast": "3.6850339583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/PM25/+1",
      "start_pst": "2025-07-27T01:00:00",
      "end_pst": "2025-07-28T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.5291666666666666666666666666666666666666666666667",
      "contrast": "3.6708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/PM25/+1",
      "start_pst": "2025-07-27T01:00:00",
      "end_pst": "2025-07-28T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "3.8938826130434782608695652173913043478260869565217",
      "contrast": "0.4061173869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/NO2/+1",
      "start_pst": "2025-07-27T01:00:00",
      "end_pst": "2025-07-28T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "3.8869565217391304347826086956521739130434782608696",
      "contrast": "0.4130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/NO2/+1",
      "start_pst": "2025-07-27T01:00:00",
      "end_pst": "2025-07-28T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "7.811532",
      "contrast": "0.988468",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/NO2/+1",
      "start_pst": "2025-07-27T01:00:00",
      "end_pst": "2025-07-28T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "7.8",
      "contrast": "1.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-27/NO2/+1",
      "start_pst": "2025-07-27T01:00:00",
      "end_pst": "2025-07-28T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.8359387291666666666666666666666666666666666666667",
      "contrast": "2.0640612708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/PM25/-1",
      "start_pst": "2025-07-27T23:00:00",
      "end_pst": "2025-07-28T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.8416666666666666666666666666666666666666666666667",
      "contrast": "2.0583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/PM25/-1",
      "start_pst": "2025-07-27T23:00:00",
      "end_pst": "2025-07-28T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "6.1768867652173913043478260869565217391304347826087",
      "contrast": "0.0231132347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/NO2/-1",
      "start_pst": "2025-07-27T23:00:00",
      "end_pst": "2025-07-28T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "6.1695652173913043478260869565217391304347826086957",
      "contrast": "0.0304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/NO2/-1",
      "start_pst": "2025-07-27T23:00:00",
      "end_pst": "2025-07-28T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "13.7001591",
      "contrast": "-3.6001591",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/NO2/-1",
      "start_pst": "2025-07-27T23:00:00",
      "end_pst": "2025-07-28T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "13.7",
      "contrast": "-3.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/NO2/-1",
      "start_pst": "2025-07-27T23:00:00",
      "end_pst": "2025-07-28T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.9116157875",
      "contrast": "1.9883842125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/PM25/+0",
      "start_pst": "2025-07-28T00:00:00",
      "end_pst": "2025-07-29T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.9166666666666666666666666666666666666666666666667",
      "contrast": "1.9833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/PM25/+0",
      "start_pst": "2025-07-28T00:00:00",
      "end_pst": "2025-07-29T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "6.2317602130434782608695652173913043478260869565217",
      "contrast": "-0.0317602130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/NO2/+0",
      "start_pst": "2025-07-28T00:00:00",
      "end_pst": "2025-07-29T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "6.2260869565217391304347826086956521739130434782609",
      "contrast": "-0.0260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/NO2/+0",
      "start_pst": "2025-07-28T00:00:00",
      "end_pst": "2025-07-29T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "13.7001591",
      "contrast": "-3.6001591",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/NO2/+0",
      "start_pst": "2025-07-28T00:00:00",
      "end_pst": "2025-07-29T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "13.7",
      "contrast": "-3.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/NO2/+0",
      "start_pst": "2025-07-28T00:00:00",
      "end_pst": "2025-07-29T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "7.0087825041666666666666666666666666666666666666667",
      "contrast": "1.8912174958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/PM25/+1",
      "start_pst": "2025-07-28T01:00:00",
      "end_pst": "2025-07-29T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "7.0125",
      "contrast": "1.8875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/PM25/+1",
      "start_pst": "2025-07-28T01:00:00",
      "end_pst": "2025-07-29T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "6.2447072130434782608695652173913043478260869565217",
      "contrast": "-0.0447072130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/NO2/+1",
      "start_pst": "2025-07-28T01:00:00",
      "end_pst": "2025-07-29T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "6.2391304347826086956521739130434782608695652173913",
      "contrast": "-0.0391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/NO2/+1",
      "start_pst": "2025-07-28T01:00:00",
      "end_pst": "2025-07-29T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "13.7001591",
      "contrast": "-3.6001591",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/NO2/+1",
      "start_pst": "2025-07-28T01:00:00",
      "end_pst": "2025-07-29T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "13.7",
      "contrast": "-3.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-28/NO2/+1",
      "start_pst": "2025-07-28T01:00:00",
      "end_pst": "2025-07-29T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "8.8188996583333333333333333333333333333333333333333",
      "contrast": "0.9811003416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/PM25/-1",
      "start_pst": "2025-07-28T23:00:00",
      "end_pst": "2025-07-29T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "8.8166666666666666666666666666666666666666666666667",
      "contrast": "0.9833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/PM25/-1",
      "start_pst": "2025-07-28T23:00:00",
      "end_pst": "2025-07-29T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "6.8965003521739130434782608695652173913043478260870",
      "contrast": "0.9034996478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/NO2/-1",
      "start_pst": "2025-07-28T23:00:00",
      "end_pst": "2025-07-29T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "6.8956521739130434782608695652173913043478260869565",
      "contrast": "0.9043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/NO2/-1",
      "start_pst": "2025-07-28T23:00:00",
      "end_pst": "2025-07-29T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "12.2210197",
      "contrast": "3.0789803",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/NO2/-1",
      "start_pst": "2025-07-28T23:00:00",
      "end_pst": "2025-07-29T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "12.2",
      "contrast": "3.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/NO2/-1",
      "start_pst": "2025-07-28T23:00:00",
      "end_pst": "2025-07-29T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "8.8215088125",
      "contrast": "0.9784911875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/PM25/+0",
      "start_pst": "2025-07-29T00:00:00",
      "end_pst": "2025-07-30T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "8.8166666666666666666666666666666666666666666666667",
      "contrast": "0.9833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/PM25/+0",
      "start_pst": "2025-07-29T00:00:00",
      "end_pst": "2025-07-30T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "6.9529943391304347826086956521739130434782608695652",
      "contrast": "0.8470056608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/NO2/+0",
      "start_pst": "2025-07-29T00:00:00",
      "end_pst": "2025-07-30T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "6.9521739130434782608695652173913043478260869565217",
      "contrast": "0.8478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/NO2/+0",
      "start_pst": "2025-07-29T00:00:00",
      "end_pst": "2025-07-30T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "12.2210197",
      "contrast": "3.0789803",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/NO2/+0",
      "start_pst": "2025-07-29T00:00:00",
      "end_pst": "2025-07-30T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "12.2",
      "contrast": "3.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/NO2/+0",
      "start_pst": "2025-07-29T00:00:00",
      "end_pst": "2025-07-30T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "8.7907883375",
      "contrast": "1.0092116625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/PM25/+1",
      "start_pst": "2025-07-29T01:00:00",
      "end_pst": "2025-07-30T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "8.7875",
      "contrast": "1.0125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/PM25/+1",
      "start_pst": "2025-07-29T01:00:00",
      "end_pst": "2025-07-30T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "7.0048892956521739130434782608695652173913043478261",
      "contrast": "0.7951107043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/NO2/+1",
      "start_pst": "2025-07-29T01:00:00",
      "end_pst": "2025-07-30T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.8",
      "town": "7.0043478260869565217391304347826086956521739130435",
      "contrast": "0.7956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/NO2/+1",
      "start_pst": "2025-07-29T01:00:00",
      "end_pst": "2025-07-30T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "12.2210197",
      "contrast": "3.0789803",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/NO2/+1",
      "start_pst": "2025-07-29T01:00:00",
      "end_pst": "2025-07-30T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "12.2",
      "contrast": "3.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-29/NO2/+1",
      "start_pst": "2025-07-29T01:00:00",
      "end_pst": "2025-07-30T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "8.2320913041666666666666666666666666666666666666667",
      "contrast": "2.9679086958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/PM25/-1",
      "start_pst": "2025-07-29T23:00:00",
      "end_pst": "2025-07-30T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "8.2333333333333333333333333333333333333333333333333",
      "contrast": "2.9666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/PM25/-1",
      "start_pst": "2025-07-29T23:00:00",
      "end_pst": "2025-07-30T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "7.7019173826086956521739130434782608695652173913043",
      "contrast": "2.0980826173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/NO2/-1",
      "start_pst": "2025-07-29T23:00:00",
      "end_pst": "2025-07-30T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "7.7043478260869565217391304347826086956521739130435",
      "contrast": "2.0956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/NO2/-1",
      "start_pst": "2025-07-29T23:00:00",
      "end_pst": "2025-07-30T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "13.8904305",
      "contrast": "6.0095695",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/NO2/-1",
      "start_pst": "2025-07-29T23:00:00",
      "end_pst": "2025-07-30T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "13.9",
      "contrast": "6.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/NO2/-1",
      "start_pst": "2025-07-29T23:00:00",
      "end_pst": "2025-07-30T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "8.2249889333333333333333333333333333333333333333333",
      "contrast": "2.9750110666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/PM25/+0",
      "start_pst": "2025-07-30T00:00:00",
      "end_pst": "2025-07-31T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "8.2291666666666666666666666666666666666666666666667",
      "contrast": "2.9708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/PM25/+0",
      "start_pst": "2025-07-30T00:00:00",
      "end_pst": "2025-07-31T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "7.8097670434782608695652173913043478260869565217391",
      "contrast": "1.9902329565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/NO2/+0",
      "start_pst": "2025-07-30T00:00:00",
      "end_pst": "2025-07-31T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "7.8130434782608695652173913043478260869565217391304",
      "contrast": "1.9869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/NO2/+0",
      "start_pst": "2025-07-30T00:00:00",
      "end_pst": "2025-07-31T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "13.8904305",
      "contrast": "6.0095695",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/NO2/+0",
      "start_pst": "2025-07-30T00:00:00",
      "end_pst": "2025-07-31T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "13.9",
      "contrast": "6.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/NO2/+0",
      "start_pst": "2025-07-30T00:00:00",
      "end_pst": "2025-07-31T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "8.272041475",
      "contrast": "2.927958525",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/PM25/+1",
      "start_pst": "2025-07-30T01:00:00",
      "end_pst": "2025-07-31T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "8.275",
      "contrast": "2.925",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/PM25/+1",
      "start_pst": "2025-07-30T01:00:00",
      "end_pst": "2025-07-31T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "7.8695037521739130434782608695652173913043478260870",
      "contrast": "1.9304962478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/NO2/+1",
      "start_pst": "2025-07-30T01:00:00",
      "end_pst": "2025-07-31T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "7.8739130434782608695652173913043478260869565217391",
      "contrast": "1.9260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/NO2/+1",
      "start_pst": "2025-07-30T01:00:00",
      "end_pst": "2025-07-31T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "13.8904305",
      "contrast": "6.0095695",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/NO2/+1",
      "start_pst": "2025-07-30T01:00:00",
      "end_pst": "2025-07-31T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "13.9",
      "contrast": "6.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-30/NO2/+1",
      "start_pst": "2025-07-30T01:00:00",
      "end_pst": "2025-07-31T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-31",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "8.3289449958333333333333333333333333333333333333333",
      "contrast": "3.0710550041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-31/PM25/-1",
      "start_pst": "2025-07-30T23:00:00",
      "end_pst": "2025-07-31T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-31",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "8.3291666666666666666666666666666666666666666666667",
      "contrast": "3.0708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-31/PM25/-1",
      "start_pst": "2025-07-30T23:00:00",
      "end_pst": "2025-07-31T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-31",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.2760642608695652173913043478260869565217391304348",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-31/NO2/-1",
      "start_pst": "2025-07-30T23:00:00",
      "end_pst": "2025-07-31T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-31",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.2739130434782608695652173913043478260869565217391",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-31/NO2/-1",
      "start_pst": "2025-07-30T23:00:00",
      "end_pst": "2025-07-31T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.0668802",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-31/NO2/-1",
      "start_pst": "2025-07-30T23:00:00",
      "end_pst": "2025-07-31T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-31/NO2/-1",
      "start_pst": "2025-07-30T23:00:00",
      "end_pst": "2025-07-31T23:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "8.2837911583333333333333333333333333333333333333333",
      "contrast": "3.1162088416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-31/PM25/+0",
      "start_pst": "2025-07-31T00:00:00",
      "end_pst": "2025-08-01T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "8.2833333333333333333333333333333333333333333333333",
      "contrast": "3.1166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-31/PM25/+0",
      "start_pst": "2025-07-31T00:00:00",
      "end_pst": "2025-08-01T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-31",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.1507768304347826086956521739130434782608695652174",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-31/NO2/+0",
      "start_pst": "2025-07-31T00:00:00",
      "end_pst": "2025-08-01T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-31",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.1478260869565217391304347826086956521739130434783",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-31/NO2/+0",
      "start_pst": "2025-07-31T00:00:00",
      "end_pst": "2025-08-01T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.0668802",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-31/NO2/+0",
      "start_pst": "2025-07-31T00:00:00",
      "end_pst": "2025-08-01T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-31/NO2/+0",
      "start_pst": "2025-07-31T00:00:00",
      "end_pst": "2025-08-01T00:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "8.1658234541666666666666666666666666666666666666667",
      "contrast": "3.2341765458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-31/PM25/+1",
      "start_pst": "2025-07-31T01:00:00",
      "end_pst": "2025-08-01T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "8.1625",
      "contrast": "3.2375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-07-31/PM25/+1",
      "start_pst": "2025-07-31T01:00:00",
      "end_pst": "2025-08-01T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-07-31",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.1671720434782608695652173913043478260869565217391",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-31/NO2/+1",
      "start_pst": "2025-07-31T01:00:00",
      "end_pst": "2025-08-01T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-31",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.1652173913043478260869565217391304347826086956522",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-31/NO2/+1",
      "start_pst": "2025-07-31T01:00:00",
      "end_pst": "2025-08-01T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-07-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.0668802",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-31/NO2/+1",
      "start_pst": "2025-07-31T01:00:00",
      "end_pst": "2025-08-01T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-07-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "11.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-07-31/NO2/+1",
      "start_pst": "2025-07-31T01:00:00",
      "end_pst": "2025-08-01T01:00:00",
      "onsite_source": {
        "month": "2025-07",
        "date_printed": "7/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/09/WLNG-AQMS-Monthly-Report-2025-07-July-2025.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-07.pdf",
        "source_pdf_sha256": "6c705234f76115e33696482675e21d58826d5722c33429799992167600fabcf9",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-07/table-b1-air-native.csv",
        "source_csv_sha256": "78e51b8ef096f2b85b0a33c4753deb3fbb262997cf0aefad17c5186856756f67",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "7.3555763541666666666666666666666666666666666666667",
      "contrast": "3.0444236458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-01/PM25/-1",
      "start_pst": "2025-07-31T23:00:00",
      "end_pst": "2025-08-01T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "7.35",
      "contrast": "3.05",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-01/PM25/-1",
      "start_pst": "2025-07-31T23:00:00",
      "end_pst": "2025-08-01T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.9234266130434782608695652173913043478260869565217",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-01/NO2/-1",
      "start_pst": "2025-07-31T23:00:00",
      "end_pst": "2025-08-01T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.9260869565217391304347826086956521739130434782609",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-01/NO2/-1",
      "start_pst": "2025-07-31T23:00:00",
      "end_pst": "2025-08-01T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.639348",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-01/NO2/-1",
      "start_pst": "2025-07-31T23:00:00",
      "end_pst": "2025-08-01T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.6",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-01/NO2/-1",
      "start_pst": "2025-07-31T23:00:00",
      "end_pst": "2025-08-01T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "7.3816724416666666666666666666666666666666666666667",
      "contrast": "3.0183275583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-01/PM25/+0",
      "start_pst": "2025-08-01T00:00:00",
      "end_pst": "2025-08-02T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "7.375",
      "contrast": "3.025",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-01/PM25/+0",
      "start_pst": "2025-08-01T00:00:00",
      "end_pst": "2025-08-02T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.8955329043478260869565217391304347826086956521739",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-01/NO2/+0",
      "start_pst": "2025-08-01T00:00:00",
      "end_pst": "2025-08-02T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.9",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-01/NO2/+0",
      "start_pst": "2025-08-01T00:00:00",
      "end_pst": "2025-08-02T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.639348",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-01/NO2/+0",
      "start_pst": "2025-08-01T00:00:00",
      "end_pst": "2025-08-02T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.6",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-01/NO2/+0",
      "start_pst": "2025-08-01T00:00:00",
      "end_pst": "2025-08-02T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "7.4375496916666666666666666666666666666666666666667",
      "contrast": "2.9624503083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-01/PM25/+1",
      "start_pst": "2025-08-01T01:00:00",
      "end_pst": "2025-08-02T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "7.4333333333333333333333333333333333333333333333333",
      "contrast": "2.9666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-01/PM25/+1",
      "start_pst": "2025-08-01T01:00:00",
      "end_pst": "2025-08-02T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.8222936",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-01/NO2/+1",
      "start_pst": "2025-08-01T01:00:00",
      "end_pst": "2025-08-02T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.8260869565217391304347826086956521739130434782609",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-01/NO2/+1",
      "start_pst": "2025-08-01T01:00:00",
      "end_pst": "2025-08-02T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.639348",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-01/NO2/+1",
      "start_pst": "2025-08-01T01:00:00",
      "end_pst": "2025-08-02T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.6",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-01/NO2/+1",
      "start_pst": "2025-08-01T01:00:00",
      "end_pst": "2025-08-02T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.7498313541666666666666666666666666666666666666667",
      "contrast": "3.5501686458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-02/PM25/-1",
      "start_pst": "2025-08-01T23:00:00",
      "end_pst": "2025-08-02T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.75",
      "contrast": "3.55",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-02/PM25/-1",
      "start_pst": "2025-08-01T23:00:00",
      "end_pst": "2025-08-02T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.9257041565217391304347826086956521739130434782609",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-02/NO2/-1",
      "start_pst": "2025-08-01T23:00:00",
      "end_pst": "2025-08-02T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.9304347826086956521739130434782608695652173913043",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-02/NO2/-1",
      "start_pst": "2025-08-01T23:00:00",
      "end_pst": "2025-08-02T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.0666299",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-02/NO2/-1",
      "start_pst": "2025-08-01T23:00:00",
      "end_pst": "2025-08-02T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-02/NO2/-1",
      "start_pst": "2025-08-01T23:00:00",
      "end_pst": "2025-08-02T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.7187454041666666666666666666666666666666666666667",
      "contrast": "3.5812545958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-02/PM25/+0",
      "start_pst": "2025-08-02T00:00:00",
      "end_pst": "2025-08-03T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.7208333333333333333333333333333333333333333333333",
      "contrast": "3.5791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-02/PM25/+0",
      "start_pst": "2025-08-02T00:00:00",
      "end_pst": "2025-08-03T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.9024871217391304347826086956521739130434782608696",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-02/NO2/+0",
      "start_pst": "2025-08-02T00:00:00",
      "end_pst": "2025-08-03T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.9043478260869565217391304347826086956521739130435",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-02/NO2/+0",
      "start_pst": "2025-08-02T00:00:00",
      "end_pst": "2025-08-03T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.5326381",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-02/NO2/+0",
      "start_pst": "2025-08-02T00:00:00",
      "end_pst": "2025-08-03T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-02/NO2/+0",
      "start_pst": "2025-08-02T00:00:00",
      "end_pst": "2025-08-03T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.7015730291666666666666666666666666666666666666667",
      "contrast": "3.5984269708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-02/PM25/+1",
      "start_pst": "2025-08-02T01:00:00",
      "end_pst": "2025-08-03T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.7041666666666666666666666666666666666666666666667",
      "contrast": "3.5958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-02/PM25/+1",
      "start_pst": "2025-08-02T01:00:00",
      "end_pst": "2025-08-03T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.9139782565217391304347826086956521739130434782609",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-02/NO2/+1",
      "start_pst": "2025-08-02T01:00:00",
      "end_pst": "2025-08-03T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.9173913043478260869565217391304347826086956521739",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-02/NO2/+1",
      "start_pst": "2025-08-02T01:00:00",
      "end_pst": "2025-08-03T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.5326381",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-02/NO2/+1",
      "start_pst": "2025-08-02T01:00:00",
      "end_pst": "2025-08-03T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.5",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-02/NO2/+1",
      "start_pst": "2025-08-02T01:00:00",
      "end_pst": "2025-08-03T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "8.7195097208333333333333333333333333333333333333333",
      "contrast": "0.8804902791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-03/PM25/-1",
      "start_pst": "2025-08-02T23:00:00",
      "end_pst": "2025-08-03T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "8.7208333333333333333333333333333333333333333333333",
      "contrast": "0.8791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-03/PM25/-1",
      "start_pst": "2025-08-02T23:00:00",
      "end_pst": "2025-08-03T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.5823915695652173913043478260869565217391304347826",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-03/NO2/-1",
      "start_pst": "2025-08-02T23:00:00",
      "end_pst": "2025-08-03T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.5826086956521739130434782608695652173913043478261",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-03/NO2/-1",
      "start_pst": "2025-08-02T23:00:00",
      "end_pst": "2025-08-03T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.9726315",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-03/NO2/-1",
      "start_pst": "2025-08-02T23:00:00",
      "end_pst": "2025-08-03T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-03/NO2/-1",
      "start_pst": "2025-08-02T23:00:00",
      "end_pst": "2025-08-03T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "8.8625672291666666666666666666666666666666666666667",
      "contrast": "0.7374327708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-03/PM25/+0",
      "start_pst": "2025-08-03T00:00:00",
      "end_pst": "2025-08-04T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "8.8625",
      "contrast": "0.7375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-03/PM25/+0",
      "start_pst": "2025-08-03T00:00:00",
      "end_pst": "2025-08-04T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.5534146086956521739130434782608695652173913043478",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-03/NO2/+0",
      "start_pst": "2025-08-03T00:00:00",
      "end_pst": "2025-08-04T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.5565217391304347826086956521739130434782608695652",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-03/NO2/+0",
      "start_pst": "2025-08-03T00:00:00",
      "end_pst": "2025-08-04T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.9726315",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-03/NO2/+0",
      "start_pst": "2025-08-03T00:00:00",
      "end_pst": "2025-08-04T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-03/NO2/+0",
      "start_pst": "2025-08-03T00:00:00",
      "end_pst": "2025-08-04T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "9.0409440",
      "contrast": "0.5590560",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-03/PM25/+1",
      "start_pst": "2025-08-03T01:00:00",
      "end_pst": "2025-08-04T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "9.0416666666666666666666666666666666666666666666667",
      "contrast": "0.5583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-03/PM25/+1",
      "start_pst": "2025-08-03T01:00:00",
      "end_pst": "2025-08-04T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.6325972521739130434782608695652173913043478260870",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-03/NO2/+1",
      "start_pst": "2025-08-03T01:00:00",
      "end_pst": "2025-08-04T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.6347826086956521739130434782608695652173913043478",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-03/NO2/+1",
      "start_pst": "2025-08-03T01:00:00",
      "end_pst": "2025-08-04T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.9726315",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-03/NO2/+1",
      "start_pst": "2025-08-03T01:00:00",
      "end_pst": "2025-08-04T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-03/NO2/+1",
      "start_pst": "2025-08-03T01:00:00",
      "end_pst": "2025-08-04T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "10.020746791666666666666666666666666666666666666667",
      "contrast": "2.379253208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-04/PM25/-1",
      "start_pst": "2025-08-03T23:00:00",
      "end_pst": "2025-08-04T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "10.020833333333333333333333333333333333333333333333",
      "contrast": "2.379166666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-04/PM25/-1",
      "start_pst": "2025-08-03T23:00:00",
      "end_pst": "2025-08-04T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.2167235",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-04/NO2/-1",
      "start_pst": "2025-08-03T23:00:00",
      "end_pst": "2025-08-04T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.2173913043478260869565217391304347826086956521739",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-04/NO2/-1",
      "start_pst": "2025-08-03T23:00:00",
      "end_pst": "2025-08-04T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.577507",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-04/NO2/-1",
      "start_pst": "2025-08-03T23:00:00",
      "end_pst": "2025-08-04T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.6",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-04/NO2/-1",
      "start_pst": "2025-08-03T23:00:00",
      "end_pst": "2025-08-04T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "10.003726366666666666666666666666666666666666666667",
      "contrast": "2.396273633333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-04/PM25/+0",
      "start_pst": "2025-08-04T00:00:00",
      "end_pst": "2025-08-05T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "10.004166666666666666666666666666666666666666666667",
      "contrast": "2.395833333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-04/PM25/+0",
      "start_pst": "2025-08-04T00:00:00",
      "end_pst": "2025-08-05T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.1661517695652173913043478260869565217391304347826",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-04/NO2/+0",
      "start_pst": "2025-08-04T00:00:00",
      "end_pst": "2025-08-05T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.1652173913043478260869565217391304347826086956522",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-04/NO2/+0",
      "start_pst": "2025-08-04T00:00:00",
      "end_pst": "2025-08-05T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.577507",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-04/NO2/+0",
      "start_pst": "2025-08-04T00:00:00",
      "end_pst": "2025-08-05T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.6",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-04/NO2/+0",
      "start_pst": "2025-08-04T00:00:00",
      "end_pst": "2025-08-05T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "9.9187983708333333333333333333333333333333333333333",
      "contrast": "2.4812016291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-04/PM25/+1",
      "start_pst": "2025-08-04T01:00:00",
      "end_pst": "2025-08-05T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.4",
      "town": "9.9166666666666666666666666666666666666666666666667",
      "contrast": "2.4833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-04/PM25/+1",
      "start_pst": "2025-08-04T01:00:00",
      "end_pst": "2025-08-05T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.0414444652173913043478260869565217391304347826087",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-04/NO2/+1",
      "start_pst": "2025-08-04T01:00:00",
      "end_pst": "2025-08-05T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "5.0391304347826086956521739130434782608695652173913",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-04/NO2/+1",
      "start_pst": "2025-08-04T01:00:00",
      "end_pst": "2025-08-05T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.2985759",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-04/NO2/+1",
      "start_pst": "2025-08-04T01:00:00",
      "end_pst": "2025-08-05T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-04/NO2/+1",
      "start_pst": "2025-08-04T01:00:00",
      "end_pst": "2025-08-05T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "11.668621054166666666666666666666666666666666666667",
      "contrast": "4.031378945833333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-05/PM25/-1",
      "start_pst": "2025-08-04T23:00:00",
      "end_pst": "2025-08-05T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "11.6625",
      "contrast": "4.0375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-05/PM25/-1",
      "start_pst": "2025-08-04T23:00:00",
      "end_pst": "2025-08-05T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.2047307",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-05/NO2/-1",
      "start_pst": "2025-08-04T23:00:00",
      "end_pst": "2025-08-05T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.2043478260869565217391304347826086956521739130435",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-05/NO2/-1",
      "start_pst": "2025-08-04T23:00:00",
      "end_pst": "2025-08-05T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.4093027",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-05/NO2/-1",
      "start_pst": "2025-08-04T23:00:00",
      "end_pst": "2025-08-05T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.4",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-05/NO2/-1",
      "start_pst": "2025-08-04T23:00:00",
      "end_pst": "2025-08-05T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "11.746350954166666666666666666666666666666666666667",
      "contrast": "3.953649045833333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-05/PM25/+0",
      "start_pst": "2025-08-05T00:00:00",
      "end_pst": "2025-08-06T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "11.741666666666666666666666666666666666666666666667",
      "contrast": "3.958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-05/PM25/+0",
      "start_pst": "2025-08-05T00:00:00",
      "end_pst": "2025-08-06T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.1340778608695652173913043478260869565217391304348",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-05/NO2/+0",
      "start_pst": "2025-08-05T00:00:00",
      "end_pst": "2025-08-06T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.1347826086956521739130434782608695652173913043478",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-05/NO2/+0",
      "start_pst": "2025-08-05T00:00:00",
      "end_pst": "2025-08-06T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.4093027",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-05/NO2/+0",
      "start_pst": "2025-08-05T00:00:00",
      "end_pst": "2025-08-06T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.4",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-05/NO2/+0",
      "start_pst": "2025-08-05T00:00:00",
      "end_pst": "2025-08-06T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "11.863472770833333333333333333333333333333333333333",
      "contrast": "3.836527229166666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-05/PM25/+1",
      "start_pst": "2025-08-05T01:00:00",
      "end_pst": "2025-08-06T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "11.858333333333333333333333333333333333333333333333",
      "contrast": "3.841666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-05/PM25/+1",
      "start_pst": "2025-08-05T01:00:00",
      "end_pst": "2025-08-06T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.1014236913043478260869565217391304347826086956522",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-05/NO2/+1",
      "start_pst": "2025-08-05T01:00:00",
      "end_pst": "2025-08-06T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.1043478260869565217391304347826086956521739130435",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-05/NO2/+1",
      "start_pst": "2025-08-05T01:00:00",
      "end_pst": "2025-08-06T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.4093027",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-05/NO2/+1",
      "start_pst": "2025-08-05T01:00:00",
      "end_pst": "2025-08-06T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.4",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-05/NO2/+1",
      "start_pst": "2025-08-05T01:00:00",
      "end_pst": "2025-08-06T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "6.8003109916666666666666666666666666666666666666667",
      "contrast": "4.1996890083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-06/PM25/-1",
      "start_pst": "2025-08-05T23:00:00",
      "end_pst": "2025-08-06T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "6.8",
      "contrast": "4.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-06/PM25/-1",
      "start_pst": "2025-08-05T23:00:00",
      "end_pst": "2025-08-06T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.5591223826086956521739130434782608695652173913043",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-06/NO2/-1",
      "start_pst": "2025-08-05T23:00:00",
      "end_pst": "2025-08-06T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.5565217391304347826086956521739130434782608695652",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-06/NO2/-1",
      "start_pst": "2025-08-05T23:00:00",
      "end_pst": "2025-08-06T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.0168352",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-06/NO2/-1",
      "start_pst": "2025-08-05T23:00:00",
      "end_pst": "2025-08-06T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-06/NO2/-1",
      "start_pst": "2025-08-05T23:00:00",
      "end_pst": "2025-08-06T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "6.4200482083333333333333333333333333333333333333333",
      "contrast": "4.5799517916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-06/PM25/+0",
      "start_pst": "2025-08-06T00:00:00",
      "end_pst": "2025-08-07T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "6.4166666666666666666666666666666666666666666666667",
      "contrast": "4.5833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-06/PM25/+0",
      "start_pst": "2025-08-06T00:00:00",
      "end_pst": "2025-08-07T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.5374440826086956521739130434782608695652173913043",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-06/NO2/+0",
      "start_pst": "2025-08-06T00:00:00",
      "end_pst": "2025-08-07T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.5347826086956521739130434782608695652173913043478",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-06/NO2/+0",
      "start_pst": "2025-08-06T00:00:00",
      "end_pst": "2025-08-07T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.0168352",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-06/NO2/+0",
      "start_pst": "2025-08-06T00:00:00",
      "end_pst": "2025-08-07T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-06/NO2/+0",
      "start_pst": "2025-08-06T00:00:00",
      "end_pst": "2025-08-07T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "6.0113027791666666666666666666666666666666666666667",
      "contrast": "4.9886972208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-06/PM25/+1",
      "start_pst": "2025-08-06T01:00:00",
      "end_pst": "2025-08-07T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "6.0083333333333333333333333333333333333333333333333",
      "contrast": "4.9916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-06/PM25/+1",
      "start_pst": "2025-08-06T01:00:00",
      "end_pst": "2025-08-07T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.4203028173913043478260869565217391304347826086957",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-06/NO2/+1",
      "start_pst": "2025-08-06T01:00:00",
      "end_pst": "2025-08-07T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.4173913043478260869565217391304347826086956521739",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-06/NO2/+1",
      "start_pst": "2025-08-06T01:00:00",
      "end_pst": "2025-08-07T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8.0168352",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-06/NO2/+1",
      "start_pst": "2025-08-06T01:00:00",
      "end_pst": "2025-08-07T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "8",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-08-06/NO2/+1",
      "start_pst": "2025-08-06T01:00:00",
      "end_pst": "2025-08-07T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "3.4174717041666666666666666666666666666666666666667",
      "contrast": "1.1825282958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/PM25/-1",
      "start_pst": "2025-08-06T23:00:00",
      "end_pst": "2025-08-07T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "3.4208333333333333333333333333333333333333333333333",
      "contrast": "1.1791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/PM25/-1",
      "start_pst": "2025-08-06T23:00:00",
      "end_pst": "2025-08-07T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.6",
      "town": "2.9785038739130434782608695652173913043478260869565",
      "contrast": "-1.3785038739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/NO2/-1",
      "start_pst": "2025-08-06T23:00:00",
      "end_pst": "2025-08-07T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.6",
      "town": "2.9826086956521739130434782608695652173913043478261",
      "contrast": "-1.3826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/NO2/-1",
      "start_pst": "2025-08-06T23:00:00",
      "end_pst": "2025-08-07T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "6.177536",
      "contrast": "9.122464",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/NO2/-1",
      "start_pst": "2025-08-06T23:00:00",
      "end_pst": "2025-08-07T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "6.2",
      "contrast": "9.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/NO2/-1",
      "start_pst": "2025-08-06T23:00:00",
      "end_pst": "2025-08-07T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "3.4926835791666666666666666666666666666666666666667",
      "contrast": "1.1073164208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/PM25/+0",
      "start_pst": "2025-08-07T00:00:00",
      "end_pst": "2025-08-08T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "3.4958333333333333333333333333333333333333333333333",
      "contrast": "1.1041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/PM25/+0",
      "start_pst": "2025-08-07T00:00:00",
      "end_pst": "2025-08-08T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.6",
      "town": "3.0069840913043478260869565217391304347826086956522",
      "contrast": "-1.4069840913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/NO2/+0",
      "start_pst": "2025-08-07T00:00:00",
      "end_pst": "2025-08-08T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.6",
      "town": "3.0086956521739130434782608695652173913043478260870",
      "contrast": "-1.4086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/NO2/+0",
      "start_pst": "2025-08-07T00:00:00",
      "end_pst": "2025-08-08T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "6.177536",
      "contrast": "9.122464",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/NO2/+0",
      "start_pst": "2025-08-07T00:00:00",
      "end_pst": "2025-08-08T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "6.2",
      "contrast": "9.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/NO2/+0",
      "start_pst": "2025-08-07T00:00:00",
      "end_pst": "2025-08-08T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "3.534319125",
      "contrast": "1.065680875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/PM25/+1",
      "start_pst": "2025-08-07T01:00:00",
      "end_pst": "2025-08-08T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "3.5375",
      "contrast": "1.0625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/PM25/+1",
      "start_pst": "2025-08-07T01:00:00",
      "end_pst": "2025-08-08T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.6",
      "town": "3.0793487913043478260869565217391304347826086956522",
      "contrast": "-1.4793487913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/NO2/+1",
      "start_pst": "2025-08-07T01:00:00",
      "end_pst": "2025-08-08T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.6",
      "town": "3.0782608695652173913043478260869565217391304347826",
      "contrast": "-1.4782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/NO2/+1",
      "start_pst": "2025-08-07T01:00:00",
      "end_pst": "2025-08-08T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "6.177536",
      "contrast": "9.122464",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/NO2/+1",
      "start_pst": "2025-08-07T01:00:00",
      "end_pst": "2025-08-08T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.3",
      "town": "6.2",
      "contrast": "9.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-07/NO2/+1",
      "start_pst": "2025-08-07T01:00:00",
      "end_pst": "2025-08-08T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.5325128166666666666666666666666666666666666666667",
      "contrast": "3.3674871833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/PM25/-1",
      "start_pst": "2025-08-07T23:00:00",
      "end_pst": "2025-08-08T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.525",
      "contrast": "3.375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/PM25/-1",
      "start_pst": "2025-08-07T23:00:00",
      "end_pst": "2025-08-08T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "5.5145643434782608695652173913043478260869565217391",
      "contrast": "1.1854356565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/NO2/-1",
      "start_pst": "2025-08-07T23:00:00",
      "end_pst": "2025-08-08T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "5.5173913043478260869565217391304347826086956521739",
      "contrast": "1.1826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/NO2/-1",
      "start_pst": "2025-08-07T23:00:00",
      "end_pst": "2025-08-08T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.5",
      "town": "10.4820204",
      "contrast": "12.0179796",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/NO2/-1",
      "start_pst": "2025-08-07T23:00:00",
      "end_pst": "2025-08-08T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.5",
      "town": "10.5",
      "contrast": "12.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/NO2/-1",
      "start_pst": "2025-08-07T23:00:00",
      "end_pst": "2025-08-08T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.4736243208333333333333333333333333333333333333333",
      "contrast": "3.4263756791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/PM25/+0",
      "start_pst": "2025-08-08T00:00:00",
      "end_pst": "2025-08-09T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.4666666666666666666666666666666666666666666666667",
      "contrast": "3.4333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/PM25/+0",
      "start_pst": "2025-08-08T00:00:00",
      "end_pst": "2025-08-09T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "5.6636980869565217391304347826086956521739130434783",
      "contrast": "1.0363019130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/NO2/+0",
      "start_pst": "2025-08-08T00:00:00",
      "end_pst": "2025-08-09T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "5.6695652173913043478260869565217391304347826086957",
      "contrast": "1.0304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/NO2/+0",
      "start_pst": "2025-08-08T00:00:00",
      "end_pst": "2025-08-09T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.5",
      "town": "10.4820204",
      "contrast": "12.0179796",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/NO2/+0",
      "start_pst": "2025-08-08T00:00:00",
      "end_pst": "2025-08-09T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.5",
      "town": "10.5",
      "contrast": "12.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/NO2/+0",
      "start_pst": "2025-08-08T00:00:00",
      "end_pst": "2025-08-09T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.441719025",
      "contrast": "3.458280975",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/PM25/+1",
      "start_pst": "2025-08-08T01:00:00",
      "end_pst": "2025-08-09T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.4375",
      "contrast": "3.4625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/PM25/+1",
      "start_pst": "2025-08-08T01:00:00",
      "end_pst": "2025-08-09T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "5.7361872565217391304347826086956521739130434782609",
      "contrast": "0.9638127434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/NO2/+1",
      "start_pst": "2025-08-08T01:00:00",
      "end_pst": "2025-08-09T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "5.7434782608695652173913043478260869565217391304348",
      "contrast": "0.9565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/NO2/+1",
      "start_pst": "2025-08-08T01:00:00",
      "end_pst": "2025-08-09T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.5",
      "town": "10.4820204",
      "contrast": "12.0179796",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/NO2/+1",
      "start_pst": "2025-08-08T01:00:00",
      "end_pst": "2025-08-09T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.5",
      "town": "10.5",
      "contrast": "12.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-08/NO2/+1",
      "start_pst": "2025-08-08T01:00:00",
      "end_pst": "2025-08-09T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "5.2894626",
      "contrast": "4.2105374",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/PM25/-1",
      "start_pst": "2025-08-08T23:00:00",
      "end_pst": "2025-08-09T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "5.3",
      "contrast": "4.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/PM25/-1",
      "start_pst": "2025-08-08T23:00:00",
      "end_pst": "2025-08-09T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.7558225130434782608695652173913043478260869565217",
      "contrast": "0.7441774869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/NO2/-1",
      "start_pst": "2025-08-08T23:00:00",
      "end_pst": "2025-08-09T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.7478260869565217391304347826086956521739130434783",
      "contrast": "0.7521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/NO2/-1",
      "start_pst": "2025-08-08T23:00:00",
      "end_pst": "2025-08-09T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "10.4326191",
      "contrast": "-1.2326191",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/NO2/-1",
      "start_pst": "2025-08-08T23:00:00",
      "end_pst": "2025-08-09T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "10.4",
      "contrast": "-1.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/NO2/-1",
      "start_pst": "2025-08-08T23:00:00",
      "end_pst": "2025-08-09T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "5.514742525",
      "contrast": "3.985257475",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/PM25/+0",
      "start_pst": "2025-08-09T00:00:00",
      "end_pst": "2025-08-10T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "5.525",
      "contrast": "3.975",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/PM25/+0",
      "start_pst": "2025-08-09T00:00:00",
      "end_pst": "2025-08-10T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.7355007304347826086956521739130434782608695652174",
      "contrast": "0.7644992695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/NO2/+0",
      "start_pst": "2025-08-09T00:00:00",
      "end_pst": "2025-08-10T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.7260869565217391304347826086956521739130434782609",
      "contrast": "0.7739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/NO2/+0",
      "start_pst": "2025-08-09T00:00:00",
      "end_pst": "2025-08-10T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "10.4326191",
      "contrast": "-1.2326191",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/NO2/+0",
      "start_pst": "2025-08-09T00:00:00",
      "end_pst": "2025-08-10T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "10.4",
      "contrast": "-1.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/NO2/+0",
      "start_pst": "2025-08-09T00:00:00",
      "end_pst": "2025-08-10T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "5.7416685666666666666666666666666666666666666666667",
      "contrast": "3.7583314333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/PM25/+1",
      "start_pst": "2025-08-09T01:00:00",
      "end_pst": "2025-08-10T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "5.75",
      "contrast": "3.75",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/PM25/+1",
      "start_pst": "2025-08-09T01:00:00",
      "end_pst": "2025-08-10T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.7380261217391304347826086956521739130434782608696",
      "contrast": "0.7619738782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/NO2/+1",
      "start_pst": "2025-08-09T01:00:00",
      "end_pst": "2025-08-10T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.7304347826086956521739130434782608695652173913043",
      "contrast": "0.7695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/NO2/+1",
      "start_pst": "2025-08-09T01:00:00",
      "end_pst": "2025-08-10T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "10.4326191",
      "contrast": "-1.2326191",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/NO2/+1",
      "start_pst": "2025-08-09T01:00:00",
      "end_pst": "2025-08-10T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "10.4",
      "contrast": "-1.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-09/NO2/+1",
      "start_pst": "2025-08-09T01:00:00",
      "end_pst": "2025-08-10T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "7.9609326583333333333333333333333333333333333333333",
      "contrast": "2.7390673416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/PM25/-1",
      "start_pst": "2025-08-09T23:00:00",
      "end_pst": "2025-08-10T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "7.9583333333333333333333333333333333333333333333333",
      "contrast": "2.7416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/PM25/-1",
      "start_pst": "2025-08-09T23:00:00",
      "end_pst": "2025-08-10T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "4.8302103947368421052631578947368421052631578947368",
      "contrast": "-0.5302103947368421052631578947368421052631578947368",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/NO2/-1",
      "start_pst": "2025-08-09T23:00:00",
      "end_pst": "2025-08-10T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "4.8210526315789473684210526315789473684210526315789",
      "contrast": "-0.5210526315789473684210526315789473684210526315789",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/NO2/-1",
      "start_pst": "2025-08-09T23:00:00",
      "end_pst": "2025-08-10T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "10.923646",
      "contrast": "9.176354",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/NO2/-1",
      "start_pst": "2025-08-09T23:00:00",
      "end_pst": "2025-08-10T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "10.9",
      "contrast": "9.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/NO2/-1",
      "start_pst": "2025-08-09T23:00:00",
      "end_pst": "2025-08-10T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "8.010075575",
      "contrast": "2.689924425",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/PM25/+0",
      "start_pst": "2025-08-10T00:00:00",
      "end_pst": "2025-08-11T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "8.0083333333333333333333333333333333333333333333333",
      "contrast": "2.6916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/PM25/+0",
      "start_pst": "2025-08-10T00:00:00",
      "end_pst": "2025-08-11T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "4.9612778947368421052631578947368421052631578947368",
      "contrast": "-0.6612778947368421052631578947368421052631578947368",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/NO2/+0",
      "start_pst": "2025-08-10T00:00:00",
      "end_pst": "2025-08-11T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "4.9526315789473684210526315789473684210526315789474",
      "contrast": "-0.6526315789473684210526315789473684210526315789474",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/NO2/+0",
      "start_pst": "2025-08-10T00:00:00",
      "end_pst": "2025-08-11T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "10.923646",
      "contrast": "9.176354",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/NO2/+0",
      "start_pst": "2025-08-10T00:00:00",
      "end_pst": "2025-08-11T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "10.9",
      "contrast": "9.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/NO2/+0",
      "start_pst": "2025-08-10T00:00:00",
      "end_pst": "2025-08-11T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "8.0366532833333333333333333333333333333333333333333",
      "contrast": "2.6633467166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/PM25/+1",
      "start_pst": "2025-08-10T01:00:00",
      "end_pst": "2025-08-11T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "8.0333333333333333333333333333333333333333333333333",
      "contrast": "2.6666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/PM25/+1",
      "start_pst": "2025-08-10T01:00:00",
      "end_pst": "2025-08-11T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "5.0099196736842105263157894736842105263157894736842",
      "contrast": "-0.7099196736842105263157894736842105263157894736842",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/NO2/+1",
      "start_pst": "2025-08-10T01:00:00",
      "end_pst": "2025-08-11T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.3",
      "town": "5.0",
      "contrast": "-0.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/NO2/+1",
      "start_pst": "2025-08-10T01:00:00",
      "end_pst": "2025-08-11T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "10.923646",
      "contrast": "9.176354",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/NO2/+1",
      "start_pst": "2025-08-10T01:00:00",
      "end_pst": "2025-08-11T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "10.9",
      "contrast": "9.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-10/NO2/+1",
      "start_pst": "2025-08-10T01:00:00",
      "end_pst": "2025-08-11T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "8.4613974875",
      "contrast": "4.3386025125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/PM25/-1",
      "start_pst": "2025-08-10T23:00:00",
      "end_pst": "2025-08-11T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "8.4625",
      "contrast": "4.3375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/PM25/-1",
      "start_pst": "2025-08-10T23:00:00",
      "end_pst": "2025-08-11T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.4",
      "town": "5.6652000217391304347826086956521739130434782608696",
      "contrast": "-2.2652000217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/NO2/-1",
      "start_pst": "2025-08-10T23:00:00",
      "end_pst": "2025-08-11T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.4",
      "town": "5.6565217391304347826086956521739130434782608695652",
      "contrast": "-2.2565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/NO2/-1",
      "start_pst": "2025-08-10T23:00:00",
      "end_pst": "2025-08-11T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "12.0378866",
      "contrast": "-3.2378866",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/NO2/-1",
      "start_pst": "2025-08-10T23:00:00",
      "end_pst": "2025-08-11T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "12",
      "contrast": "-3.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/NO2/-1",
      "start_pst": "2025-08-10T23:00:00",
      "end_pst": "2025-08-11T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "8.3267927166666666666666666666666666666666666666667",
      "contrast": "4.4732072833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/PM25/+0",
      "start_pst": "2025-08-11T00:00:00",
      "end_pst": "2025-08-12T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "8.3291666666666666666666666666666666666666666666667",
      "contrast": "4.4708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/PM25/+0",
      "start_pst": "2025-08-11T00:00:00",
      "end_pst": "2025-08-12T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.4",
      "town": "5.5337906043478260869565217391304347826086956521739",
      "contrast": "-2.1337906043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/NO2/+0",
      "start_pst": "2025-08-11T00:00:00",
      "end_pst": "2025-08-12T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.4",
      "town": "5.5260869565217391304347826086956521739130434782609",
      "contrast": "-2.1260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/NO2/+0",
      "start_pst": "2025-08-11T00:00:00",
      "end_pst": "2025-08-12T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "12.0378866",
      "contrast": "-3.2378866",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/NO2/+0",
      "start_pst": "2025-08-11T00:00:00",
      "end_pst": "2025-08-12T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "12",
      "contrast": "-3.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/NO2/+0",
      "start_pst": "2025-08-11T00:00:00",
      "end_pst": "2025-08-12T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "8.1886702166666666666666666666666666666666666666667",
      "contrast": "4.6113297833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/PM25/+1",
      "start_pst": "2025-08-11T01:00:00",
      "end_pst": "2025-08-12T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "8.1916666666666666666666666666666666666666666666667",
      "contrast": "4.6083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/PM25/+1",
      "start_pst": "2025-08-11T01:00:00",
      "end_pst": "2025-08-12T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.4",
      "town": "5.5027054869565217391304347826086956521739130434783",
      "contrast": "-2.1027054869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/NO2/+1",
      "start_pst": "2025-08-11T01:00:00",
      "end_pst": "2025-08-12T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.4",
      "town": "5.4956521739130434782608695652173913043478260869565",
      "contrast": "-2.0956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/NO2/+1",
      "start_pst": "2025-08-11T01:00:00",
      "end_pst": "2025-08-12T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "12.0378866",
      "contrast": "-3.2378866",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/NO2/+1",
      "start_pst": "2025-08-11T01:00:00",
      "end_pst": "2025-08-12T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "12",
      "contrast": "-3.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-11/NO2/+1",
      "start_pst": "2025-08-11T01:00:00",
      "end_pst": "2025-08-12T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "7.3021587333333333333333333333333333333333333333333",
      "contrast": "1.9978412666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/PM25/-1",
      "start_pst": "2025-08-11T23:00:00",
      "end_pst": "2025-08-12T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "7.3041666666666666666666666666666666666666666666667",
      "contrast": "1.9958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/PM25/-1",
      "start_pst": "2025-08-11T23:00:00",
      "end_pst": "2025-08-12T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.8",
      "town": "4.4761461913043478260869565217391304347826086956522",
      "contrast": "-1.6761461913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/NO2/-1",
      "start_pst": "2025-08-11T23:00:00",
      "end_pst": "2025-08-12T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.8",
      "town": "4.4869565217391304347826086956521739130434782608696",
      "contrast": "-1.6869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/NO2/-1",
      "start_pst": "2025-08-11T23:00:00",
      "end_pst": "2025-08-12T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.0023842",
      "contrast": "8.1976158",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/NO2/-1",
      "start_pst": "2025-08-11T23:00:00",
      "end_pst": "2025-08-12T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6",
      "contrast": "8.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/NO2/-1",
      "start_pst": "2025-08-11T23:00:00",
      "end_pst": "2025-08-12T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "7.2449882833333333333333333333333333333333333333333",
      "contrast": "2.0550117166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/PM25/+0",
      "start_pst": "2025-08-12T00:00:00",
      "end_pst": "2025-08-13T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "7.2458333333333333333333333333333333333333333333333",
      "contrast": "2.0541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/PM25/+0",
      "start_pst": "2025-08-12T00:00:00",
      "end_pst": "2025-08-13T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.8",
      "town": "4.3856020217391304347826086956521739130434782608696",
      "contrast": "-1.5856020217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/NO2/+0",
      "start_pst": "2025-08-12T00:00:00",
      "end_pst": "2025-08-13T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.8",
      "town": "4.3956521739130434782608695652173913043478260869565",
      "contrast": "-1.5956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/NO2/+0",
      "start_pst": "2025-08-12T00:00:00",
      "end_pst": "2025-08-13T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.0023842",
      "contrast": "8.1976158",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/NO2/+0",
      "start_pst": "2025-08-12T00:00:00",
      "end_pst": "2025-08-13T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6",
      "contrast": "8.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/NO2/+0",
      "start_pst": "2025-08-12T00:00:00",
      "end_pst": "2025-08-13T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "7.194079075",
      "contrast": "2.105920925",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/PM25/+1",
      "start_pst": "2025-08-12T01:00:00",
      "end_pst": "2025-08-13T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "7.1958333333333333333333333333333333333333333333333",
      "contrast": "2.1041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/PM25/+1",
      "start_pst": "2025-08-12T01:00:00",
      "end_pst": "2025-08-13T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.8",
      "town": "4.3700540608695652173913043478260869565217391304348",
      "contrast": "-1.5700540608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/NO2/+1",
      "start_pst": "2025-08-12T01:00:00",
      "end_pst": "2025-08-13T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "2.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "2.8",
      "town": "4.3782608695652173913043478260869565217391304347826",
      "contrast": "-1.5782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/NO2/+1",
      "start_pst": "2025-08-12T01:00:00",
      "end_pst": "2025-08-13T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.0023842",
      "contrast": "8.1976158",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/NO2/+1",
      "start_pst": "2025-08-12T01:00:00",
      "end_pst": "2025-08-13T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6",
      "contrast": "8.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-12/NO2/+1",
      "start_pst": "2025-08-12T01:00:00",
      "end_pst": "2025-08-13T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.5762112875",
      "contrast": "2.3237887125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/PM25/-1",
      "start_pst": "2025-08-12T23:00:00",
      "end_pst": "2025-08-13T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.5875",
      "contrast": "2.3125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/PM25/-1",
      "start_pst": "2025-08-12T23:00:00",
      "end_pst": "2025-08-13T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "0.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "0.4",
      "town": "4.8069217565217391304347826086956521739130434782609",
      "contrast": "-4.4069217565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/NO2/-1",
      "start_pst": "2025-08-12T23:00:00",
      "end_pst": "2025-08-13T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "0.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "0.4",
      "town": "4.8130434782608695652173913043478260869565217391304",
      "contrast": "-4.4130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/NO2/-1",
      "start_pst": "2025-08-12T23:00:00",
      "end_pst": "2025-08-13T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "10.8599577",
      "contrast": "-7.1599577",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/NO2/-1",
      "start_pst": "2025-08-12T23:00:00",
      "end_pst": "2025-08-13T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "10.9",
      "contrast": "-7.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/NO2/-1",
      "start_pst": "2025-08-12T23:00:00",
      "end_pst": "2025-08-13T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.5388579125",
      "contrast": "2.3611420875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/PM25/+0",
      "start_pst": "2025-08-13T00:00:00",
      "end_pst": "2025-08-14T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.55",
      "contrast": "2.35",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/PM25/+0",
      "start_pst": "2025-08-13T00:00:00",
      "end_pst": "2025-08-14T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "0.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "0.4",
      "town": "4.9492800478260869565217391304347826086956521739130",
      "contrast": "-4.5492800478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/NO2/+0",
      "start_pst": "2025-08-13T00:00:00",
      "end_pst": "2025-08-14T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "0.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "0.4",
      "town": "4.9565217391304347826086956521739130434782608695652",
      "contrast": "-4.5565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/NO2/+0",
      "start_pst": "2025-08-13T00:00:00",
      "end_pst": "2025-08-14T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "10.8599577",
      "contrast": "-7.1599577",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/NO2/+0",
      "start_pst": "2025-08-13T00:00:00",
      "end_pst": "2025-08-14T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "10.9",
      "contrast": "-7.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/NO2/+0",
      "start_pst": "2025-08-13T00:00:00",
      "end_pst": "2025-08-14T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.5321338708333333333333333333333333333333333333333",
      "contrast": "2.3678661291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/PM25/+1",
      "start_pst": "2025-08-13T01:00:00",
      "end_pst": "2025-08-14T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.5416666666666666666666666666666666666666666666667",
      "contrast": "2.3583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/PM25/+1",
      "start_pst": "2025-08-13T01:00:00",
      "end_pst": "2025-08-14T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "0.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "0.4",
      "town": "5.0535099956521739130434782608695652173913043478261",
      "contrast": "-4.6535099956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/NO2/+1",
      "start_pst": "2025-08-13T01:00:00",
      "end_pst": "2025-08-14T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "0.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "0.4",
      "town": "5.0608695652173913043478260869565217391304347826087",
      "contrast": "-4.6608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/NO2/+1",
      "start_pst": "2025-08-13T01:00:00",
      "end_pst": "2025-08-14T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "10.8599577",
      "contrast": "-7.1599577",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/NO2/+1",
      "start_pst": "2025-08-13T01:00:00",
      "end_pst": "2025-08-14T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "3.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.7",
      "town": "10.9",
      "contrast": "-7.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-13/NO2/+1",
      "start_pst": "2025-08-13T01:00:00",
      "end_pst": "2025-08-14T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "7.8244143166666666666666666666666666666666666666667",
      "contrast": "6.1755856833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/PM25/-1",
      "start_pst": "2025-08-13T23:00:00",
      "end_pst": "2025-08-14T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "7.8291666666666666666666666666666666666666666666667",
      "contrast": "6.1708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/PM25/-1",
      "start_pst": "2025-08-13T23:00:00",
      "end_pst": "2025-08-14T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "7.0864756956521739130434782608695652173913043478261",
      "contrast": "-1.4864756956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/NO2/-1",
      "start_pst": "2025-08-13T23:00:00",
      "end_pst": "2025-08-14T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "7.0869565217391304347826086956521739130434782608696",
      "contrast": "-1.4869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/NO2/-1",
      "start_pst": "2025-08-13T23:00:00",
      "end_pst": "2025-08-14T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "13.511116",
      "contrast": "0.988884",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/NO2/-1",
      "start_pst": "2025-08-13T23:00:00",
      "end_pst": "2025-08-14T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "13.5",
      "contrast": "1.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/NO2/-1",
      "start_pst": "2025-08-13T23:00:00",
      "end_pst": "2025-08-14T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "8.182764275",
      "contrast": "5.817235725",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/PM25/+0",
      "start_pst": "2025-08-14T00:00:00",
      "end_pst": "2025-08-15T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "8.1875",
      "contrast": "5.8125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/PM25/+0",
      "start_pst": "2025-08-14T00:00:00",
      "end_pst": "2025-08-15T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "6.9170193173913043478260869565217391304347826086957",
      "contrast": "-1.3170193173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/NO2/+0",
      "start_pst": "2025-08-14T00:00:00",
      "end_pst": "2025-08-15T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "6.9173913043478260869565217391304347826086956521739",
      "contrast": "-1.3173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/NO2/+0",
      "start_pst": "2025-08-14T00:00:00",
      "end_pst": "2025-08-15T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "13.511116",
      "contrast": "0.988884",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/NO2/+0",
      "start_pst": "2025-08-14T00:00:00",
      "end_pst": "2025-08-15T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "13.5",
      "contrast": "1.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/NO2/+0",
      "start_pst": "2025-08-14T00:00:00",
      "end_pst": "2025-08-15T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "8.5566350375",
      "contrast": "5.4433649625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/PM25/+1",
      "start_pst": "2025-08-14T01:00:00",
      "end_pst": "2025-08-15T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "8.5625",
      "contrast": "5.4375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/PM25/+1",
      "start_pst": "2025-08-14T01:00:00",
      "end_pst": "2025-08-15T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "6.91767525",
      "contrast": "-1.31767525",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/NO2/+1",
      "start_pst": "2025-08-14T01:00:00",
      "end_pst": "2025-08-15T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "6.9181818181818181818181818181818181818181818181818",
      "contrast": "-1.3181818181818181818181818181818181818181818181818",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/NO2/+1",
      "start_pst": "2025-08-14T01:00:00",
      "end_pst": "2025-08-15T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "13.511116",
      "contrast": "0.988884",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/NO2/+1",
      "start_pst": "2025-08-14T01:00:00",
      "end_pst": "2025-08-15T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "13.5",
      "contrast": "1.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-14/NO2/+1",
      "start_pst": "2025-08-14T01:00:00",
      "end_pst": "2025-08-15T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "3.2765013608695652173913043478260869565217391304348",
      "contrast": "5.9234986391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/PM25/-1",
      "start_pst": "2025-08-14T23:00:00",
      "end_pst": "2025-08-15T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "3.2782608695652173913043478260869565217391304347826",
      "contrast": "5.9217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/PM25/-1",
      "start_pst": "2025-08-14T23:00:00",
      "end_pst": "2025-08-15T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "6.7169175956521739130434782608695652173913043478261",
      "contrast": "-2.0169175956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/NO2/-1",
      "start_pst": "2025-08-14T23:00:00",
      "end_pst": "2025-08-15T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "6.7260869565217391304347826086956521739130434782609",
      "contrast": "-2.0260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/NO2/-1",
      "start_pst": "2025-08-14T23:00:00",
      "end_pst": "2025-08-15T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "11.3271942",
      "contrast": "4.6728058",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/NO2/-1",
      "start_pst": "2025-08-14T23:00:00",
      "end_pst": "2025-08-15T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "11.3",
      "contrast": "4.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/NO2/-1",
      "start_pst": "2025-08-14T23:00:00",
      "end_pst": "2025-08-15T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "2.7525481434782608695652173913043478260869565217391",
      "contrast": "6.4474518565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/PM25/+0",
      "start_pst": "2025-08-15T00:00:00",
      "end_pst": "2025-08-16T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "2.7565217391304347826086956521739130434782608695652",
      "contrast": "6.4434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/PM25/+0",
      "start_pst": "2025-08-15T00:00:00",
      "end_pst": "2025-08-16T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "6.8877222090909090909090909090909090909090909090909",
      "contrast": "-2.1877222090909090909090909090909090909090909090909",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/NO2/+0",
      "start_pst": "2025-08-15T00:00:00",
      "end_pst": "2025-08-16T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "6.8954545454545454545454545454545454545454545454545",
      "contrast": "-2.1954545454545454545454545454545454545454545454545",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/NO2/+0",
      "start_pst": "2025-08-15T00:00:00",
      "end_pst": "2025-08-16T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "11.3271942",
      "contrast": "4.6728058",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/NO2/+0",
      "start_pst": "2025-08-15T00:00:00",
      "end_pst": "2025-08-16T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "11.3",
      "contrast": "4.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/NO2/+0",
      "start_pst": "2025-08-15T00:00:00",
      "end_pst": "2025-08-16T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "2.2173033478260869565217391304347826086956521739130",
      "contrast": "6.9826966521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/PM25/+1",
      "start_pst": "2025-08-15T01:00:00",
      "end_pst": "2025-08-16T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "2.2217391304347826086956521739130434782608695652174",
      "contrast": "6.9782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/PM25/+1",
      "start_pst": "2025-08-15T01:00:00",
      "end_pst": "2025-08-16T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "6.7130616304347826086956521739130434782608695652174",
      "contrast": "-2.0130616304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/NO2/+1",
      "start_pst": "2025-08-15T01:00:00",
      "end_pst": "2025-08-16T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.7",
      "town": "6.7217391304347826086956521739130434782608695652174",
      "contrast": "-2.0217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/NO2/+1",
      "start_pst": "2025-08-15T01:00:00",
      "end_pst": "2025-08-16T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "11.3271942",
      "contrast": "4.6728058",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/NO2/+1",
      "start_pst": "2025-08-15T01:00:00",
      "end_pst": "2025-08-16T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "11.3",
      "contrast": "4.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-15/NO2/+1",
      "start_pst": "2025-08-15T01:00:00",
      "end_pst": "2025-08-16T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.5028525875",
      "contrast": "3.6971474125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/PM25/-1",
      "start_pst": "2025-08-15T23:00:00",
      "end_pst": "2025-08-16T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.5041666666666666666666666666666666666666666666667",
      "contrast": "3.6958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/PM25/-1",
      "start_pst": "2025-08-15T23:00:00",
      "end_pst": "2025-08-16T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.0",
      "town": "3.6959337909090909090909090909090909090909090909091",
      "contrast": "-2.6959337909090909090909090909090909090909090909091",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/NO2/-1",
      "start_pst": "2025-08-15T23:00:00",
      "end_pst": "2025-08-16T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.0",
      "town": "3.7090909090909090909090909090909090909090909090909",
      "contrast": "-2.7090909090909090909090909090909090909090909090909",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/NO2/-1",
      "start_pst": "2025-08-15T23:00:00",
      "end_pst": "2025-08-16T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "5.8382621",
      "contrast": "-0.5382621",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/NO2/-1",
      "start_pst": "2025-08-15T23:00:00",
      "end_pst": "2025-08-16T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "5.8",
      "contrast": "-0.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/NO2/-1",
      "start_pst": "2025-08-15T23:00:00",
      "end_pst": "2025-08-16T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.6423902958333333333333333333333333333333333333333",
      "contrast": "3.5576097041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/PM25/+0",
      "start_pst": "2025-08-16T00:00:00",
      "end_pst": "2025-08-17T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.6416666666666666666666666666666666666666666666667",
      "contrast": "3.5583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/PM25/+0",
      "start_pst": "2025-08-16T00:00:00",
      "end_pst": "2025-08-17T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.0",
      "town": "3.6898848",
      "contrast": "-2.6898848",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/NO2/+0",
      "start_pst": "2025-08-16T00:00:00",
      "end_pst": "2025-08-17T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.0",
      "town": "3.7043478260869565217391304347826086956521739130435",
      "contrast": "-2.7043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/NO2/+0",
      "start_pst": "2025-08-16T00:00:00",
      "end_pst": "2025-08-17T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "5.8382621",
      "contrast": "-0.5382621",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/NO2/+0",
      "start_pst": "2025-08-16T00:00:00",
      "end_pst": "2025-08-17T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "5.8",
      "contrast": "-0.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/NO2/+0",
      "start_pst": "2025-08-16T00:00:00",
      "end_pst": "2025-08-17T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.8093415125",
      "contrast": "3.3906584875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/PM25/+1",
      "start_pst": "2025-08-16T01:00:00",
      "end_pst": "2025-08-17T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.8083333333333333333333333333333333333333333333333",
      "contrast": "3.3916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/PM25/+1",
      "start_pst": "2025-08-16T01:00:00",
      "end_pst": "2025-08-17T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.0",
      "town": "3.7562754086956521739130434782608695652173913043478",
      "contrast": "-2.7562754086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/NO2/+1",
      "start_pst": "2025-08-16T01:00:00",
      "end_pst": "2025-08-17T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "1.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "1.0",
      "town": "3.7695652173913043478260869565217391304347826086957",
      "contrast": "-2.7695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/NO2/+1",
      "start_pst": "2025-08-16T01:00:00",
      "end_pst": "2025-08-17T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "5.8382621",
      "contrast": "-0.5382621",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/NO2/+1",
      "start_pst": "2025-08-16T01:00:00",
      "end_pst": "2025-08-17T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "5.8",
      "contrast": "-0.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-16/NO2/+1",
      "start_pst": "2025-08-16T01:00:00",
      "end_pst": "2025-08-17T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "6.9147285666666666666666666666666666666666666666667",
      "contrast": "-0.7147285666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/PM25/-1",
      "start_pst": "2025-08-16T23:00:00",
      "end_pst": "2025-08-17T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "6.9083333333333333333333333333333333333333333333333",
      "contrast": "-0.7083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/PM25/-1",
      "start_pst": "2025-08-16T23:00:00",
      "end_pst": "2025-08-17T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "3.8982118",
      "contrast": "0.1017882",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/NO2/-1",
      "start_pst": "2025-08-16T23:00:00",
      "end_pst": "2025-08-17T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "3.8956521739130434782608695652173913043478260869565",
      "contrast": "0.1043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/NO2/-1",
      "start_pst": "2025-08-16T23:00:00",
      "end_pst": "2025-08-17T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "7.4899268",
      "contrast": "7.0100732",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/NO2/-1",
      "start_pst": "2025-08-16T23:00:00",
      "end_pst": "2025-08-17T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "7.5",
      "contrast": "7.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/NO2/-1",
      "start_pst": "2025-08-16T23:00:00",
      "end_pst": "2025-08-17T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "6.8908930666666666666666666666666666666666666666667",
      "contrast": "-0.6908930666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/PM25/+0",
      "start_pst": "2025-08-17T00:00:00",
      "end_pst": "2025-08-18T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "6.8833333333333333333333333333333333333333333333333",
      "contrast": "-0.6833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/PM25/+0",
      "start_pst": "2025-08-17T00:00:00",
      "end_pst": "2025-08-18T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "3.9160328434782608695652173913043478260869565217391",
      "contrast": "0.0839671565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/NO2/+0",
      "start_pst": "2025-08-17T00:00:00",
      "end_pst": "2025-08-18T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "3.9130434782608695652173913043478260869565217391304",
      "contrast": "0.0869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/NO2/+0",
      "start_pst": "2025-08-17T00:00:00",
      "end_pst": "2025-08-18T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "7.4899268",
      "contrast": "7.0100732",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/NO2/+0",
      "start_pst": "2025-08-17T00:00:00",
      "end_pst": "2025-08-18T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "7.5",
      "contrast": "7.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/NO2/+0",
      "start_pst": "2025-08-17T00:00:00",
      "end_pst": "2025-08-18T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "6.8321230166666666666666666666666666666666666666667",
      "contrast": "-0.6321230166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/PM25/+1",
      "start_pst": "2025-08-17T01:00:00",
      "end_pst": "2025-08-18T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "6.825",
      "contrast": "-0.625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/PM25/+1",
      "start_pst": "2025-08-17T01:00:00",
      "end_pst": "2025-08-18T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "3.8334434130434782608695652173913043478260869565217",
      "contrast": "0.1665565869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/NO2/+1",
      "start_pst": "2025-08-17T01:00:00",
      "end_pst": "2025-08-18T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "3.8304347826086956521739130434782608695652173913043",
      "contrast": "0.1695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/NO2/+1",
      "start_pst": "2025-08-17T01:00:00",
      "end_pst": "2025-08-18T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "7.4899268",
      "contrast": "7.0100732",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/NO2/+1",
      "start_pst": "2025-08-17T01:00:00",
      "end_pst": "2025-08-18T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "7.5",
      "contrast": "7.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-17/NO2/+1",
      "start_pst": "2025-08-17T01:00:00",
      "end_pst": "2025-08-18T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "5.0096429208333333333333333333333333333333333333333",
      "contrast": "3.1903570791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/PM25/-1",
      "start_pst": "2025-08-17T23:00:00",
      "end_pst": "2025-08-18T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "5.0166666666666666666666666666666666666666666666667",
      "contrast": "3.1833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/PM25/-1",
      "start_pst": "2025-08-17T23:00:00",
      "end_pst": "2025-08-18T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.2923709434782608695652173913043478260869565217391",
      "contrast": "1.6076290565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/NO2/-1",
      "start_pst": "2025-08-17T23:00:00",
      "end_pst": "2025-08-18T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.2956521739130434782608695652173913043478260869565",
      "contrast": "1.6043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/NO2/-1",
      "start_pst": "2025-08-17T23:00:00",
      "end_pst": "2025-08-18T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "9.4855003",
      "contrast": "8.1144997",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/NO2/-1",
      "start_pst": "2025-08-17T23:00:00",
      "end_pst": "2025-08-18T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "9.5",
      "contrast": "8.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/NO2/-1",
      "start_pst": "2025-08-17T23:00:00",
      "end_pst": "2025-08-18T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "5.0904936708333333333333333333333333333333333333333",
      "contrast": "3.1095063291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/PM25/+0",
      "start_pst": "2025-08-18T00:00:00",
      "end_pst": "2025-08-19T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "5.1",
      "contrast": "3.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/PM25/+0",
      "start_pst": "2025-08-18T00:00:00",
      "end_pst": "2025-08-19T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.4414429086956521739130434782608695652173913043478",
      "contrast": "1.4585570913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/NO2/+0",
      "start_pst": "2025-08-18T00:00:00",
      "end_pst": "2025-08-19T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.4434782608695652173913043478260869565217391304348",
      "contrast": "1.4565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/NO2/+0",
      "start_pst": "2025-08-18T00:00:00",
      "end_pst": "2025-08-19T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "9.4855003",
      "contrast": "8.1144997",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/NO2/+0",
      "start_pst": "2025-08-18T00:00:00",
      "end_pst": "2025-08-19T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "9.5",
      "contrast": "8.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/NO2/+0",
      "start_pst": "2025-08-18T00:00:00",
      "end_pst": "2025-08-19T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "5.1498530916666666666666666666666666666666666666667",
      "contrast": "3.0501469083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/PM25/+1",
      "start_pst": "2025-08-18T01:00:00",
      "end_pst": "2025-08-19T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "5.1583333333333333333333333333333333333333333333333",
      "contrast": "3.0416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/PM25/+1",
      "start_pst": "2025-08-18T01:00:00",
      "end_pst": "2025-08-19T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.6407801347826086956521739130434782608695652173913",
      "contrast": "1.2592198652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/NO2/+1",
      "start_pst": "2025-08-18T01:00:00",
      "end_pst": "2025-08-19T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "5.6434782608695652173913043478260869565217391304348",
      "contrast": "1.2565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/NO2/+1",
      "start_pst": "2025-08-18T01:00:00",
      "end_pst": "2025-08-19T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "9.4855003",
      "contrast": "8.1144997",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/NO2/+1",
      "start_pst": "2025-08-18T01:00:00",
      "end_pst": "2025-08-19T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "9.5",
      "contrast": "8.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-18/NO2/+1",
      "start_pst": "2025-08-18T01:00:00",
      "end_pst": "2025-08-19T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "5.0628449291666666666666666666666666666666666666667",
      "contrast": "3.2371550708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/PM25/-1",
      "start_pst": "2025-08-18T23:00:00",
      "end_pst": "2025-08-19T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "5.0541666666666666666666666666666666666666666666667",
      "contrast": "3.2458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/PM25/-1",
      "start_pst": "2025-08-18T23:00:00",
      "end_pst": "2025-08-19T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.3708198826086956521739130434782608695652173913043",
      "contrast": "2.5291801173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/NO2/-1",
      "start_pst": "2025-08-18T23:00:00",
      "end_pst": "2025-08-19T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.3652173913043478260869565217391304347826086956522",
      "contrast": "2.5347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/NO2/-1",
      "start_pst": "2025-08-18T23:00:00",
      "end_pst": "2025-08-19T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.4",
      "town": "9.4555311",
      "contrast": "8.9444689",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/NO2/-1",
      "start_pst": "2025-08-18T23:00:00",
      "end_pst": "2025-08-19T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.4",
      "town": "9.5",
      "contrast": "8.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/NO2/-1",
      "start_pst": "2025-08-18T23:00:00",
      "end_pst": "2025-08-19T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "4.9361090125",
      "contrast": "3.3638909875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/PM25/+0",
      "start_pst": "2025-08-19T00:00:00",
      "end_pst": "2025-08-20T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "4.925",
      "contrast": "3.375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/PM25/+0",
      "start_pst": "2025-08-19T00:00:00",
      "end_pst": "2025-08-20T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.1176871782608695652173913043478260869565217391304",
      "contrast": "2.7823128217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/NO2/+0",
      "start_pst": "2025-08-19T00:00:00",
      "end_pst": "2025-08-20T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.1130434782608695652173913043478260869565217391304",
      "contrast": "2.7869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/NO2/+0",
      "start_pst": "2025-08-19T00:00:00",
      "end_pst": "2025-08-20T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.4",
      "town": "9.4555311",
      "contrast": "8.9444689",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/NO2/+0",
      "start_pst": "2025-08-19T00:00:00",
      "end_pst": "2025-08-20T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.4",
      "town": "9.5",
      "contrast": "8.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/NO2/+0",
      "start_pst": "2025-08-19T00:00:00",
      "end_pst": "2025-08-20T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "4.8483803041666666666666666666666666666666666666667",
      "contrast": "3.4516196958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/PM25/+1",
      "start_pst": "2025-08-19T01:00:00",
      "end_pst": "2025-08-20T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "4.8375",
      "contrast": "3.4625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/PM25/+1",
      "start_pst": "2025-08-19T01:00:00",
      "end_pst": "2025-08-20T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "5.8761602565217391304347826086956521739130434782609",
      "contrast": "3.0238397434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/NO2/+1",
      "start_pst": "2025-08-19T01:00:00",
      "end_pst": "2025-08-20T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "5.8695652173913043478260869565217391304347826086957",
      "contrast": "3.0304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/NO2/+1",
      "start_pst": "2025-08-19T01:00:00",
      "end_pst": "2025-08-20T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.4",
      "town": "9.4555311",
      "contrast": "8.9444689",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/NO2/+1",
      "start_pst": "2025-08-19T01:00:00",
      "end_pst": "2025-08-20T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.4",
      "town": "9.5",
      "contrast": "8.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-19/NO2/+1",
      "start_pst": "2025-08-19T01:00:00",
      "end_pst": "2025-08-20T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "6.1817997375",
      "contrast": "1.8182002625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/PM25/-1",
      "start_pst": "2025-08-19T23:00:00",
      "end_pst": "2025-08-20T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "6.1708333333333333333333333333333333333333333333333",
      "contrast": "1.8291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/PM25/-1",
      "start_pst": "2025-08-19T23:00:00",
      "end_pst": "2025-08-20T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "4.0014675217391304347826086956521739130434782608696",
      "contrast": "2.5985324782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/NO2/-1",
      "start_pst": "2025-08-19T23:00:00",
      "end_pst": "2025-08-20T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "4.0",
      "contrast": "2.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/NO2/-1",
      "start_pst": "2025-08-19T23:00:00",
      "end_pst": "2025-08-20T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.2",
      "town": "10.0246582",
      "contrast": "10.1753418",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/NO2/-1",
      "start_pst": "2025-08-19T23:00:00",
      "end_pst": "2025-08-20T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.2",
      "town": "10",
      "contrast": "10.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/NO2/-1",
      "start_pst": "2025-08-19T23:00:00",
      "end_pst": "2025-08-20T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "6.3570416583333333333333333333333333333333333333333",
      "contrast": "1.6429583416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/PM25/+0",
      "start_pst": "2025-08-20T00:00:00",
      "end_pst": "2025-08-21T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "6.3458333333333333333333333333333333333333333333333",
      "contrast": "1.6541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/PM25/+0",
      "start_pst": "2025-08-20T00:00:00",
      "end_pst": "2025-08-21T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "4.1730866956521739130434782608695652173913043478261",
      "contrast": "2.4269133043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/NO2/+0",
      "start_pst": "2025-08-20T00:00:00",
      "end_pst": "2025-08-21T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "4.1695652173913043478260869565217391304347826086957",
      "contrast": "2.4304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/NO2/+0",
      "start_pst": "2025-08-20T00:00:00",
      "end_pst": "2025-08-21T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.2",
      "town": "10.0246582",
      "contrast": "10.1753418",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/NO2/+0",
      "start_pst": "2025-08-20T00:00:00",
      "end_pst": "2025-08-21T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.2",
      "town": "10",
      "contrast": "10.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/NO2/+0",
      "start_pst": "2025-08-20T00:00:00",
      "end_pst": "2025-08-21T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "6.5246198291666666666666666666666666666666666666667",
      "contrast": "1.4753801708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/PM25/+1",
      "start_pst": "2025-08-20T01:00:00",
      "end_pst": "2025-08-21T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "6.5125",
      "contrast": "1.4875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/PM25/+1",
      "start_pst": "2025-08-20T01:00:00",
      "end_pst": "2025-08-21T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "4.2630916521739130434782608695652173913043478260870",
      "contrast": "2.3369083478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/NO2/+1",
      "start_pst": "2025-08-20T01:00:00",
      "end_pst": "2025-08-21T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "4.2608695652173913043478260869565217391304347826087",
      "contrast": "2.3391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/NO2/+1",
      "start_pst": "2025-08-20T01:00:00",
      "end_pst": "2025-08-21T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.2",
      "town": "10.0246582",
      "contrast": "10.1753418",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/NO2/+1",
      "start_pst": "2025-08-20T01:00:00",
      "end_pst": "2025-08-21T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.2",
      "town": "10",
      "contrast": "10.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-20/NO2/+1",
      "start_pst": "2025-08-20T01:00:00",
      "end_pst": "2025-08-21T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "6.1266506875",
      "contrast": "1.7733493125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/PM25/-1",
      "start_pst": "2025-08-20T23:00:00",
      "end_pst": "2025-08-21T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "6.1125",
      "contrast": "1.7875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/PM25/-1",
      "start_pst": "2025-08-20T23:00:00",
      "end_pst": "2025-08-21T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "4.5937653391304347826086956521739130434782608695652",
      "contrast": "0.0062346608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/NO2/-1",
      "start_pst": "2025-08-20T23:00:00",
      "end_pst": "2025-08-21T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "4.5913043478260869565217391304347826086956521739130",
      "contrast": "0.0086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/NO2/-1",
      "start_pst": "2025-08-20T23:00:00",
      "end_pst": "2025-08-21T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "12.810997",
      "contrast": "-1.310997",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/NO2/-1",
      "start_pst": "2025-08-20T23:00:00",
      "end_pst": "2025-08-21T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "12.8",
      "contrast": "-1.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/NO2/-1",
      "start_pst": "2025-08-20T23:00:00",
      "end_pst": "2025-08-21T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "6.0092143083333333333333333333333333333333333333333",
      "contrast": "1.8907856916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/PM25/+0",
      "start_pst": "2025-08-21T00:00:00",
      "end_pst": "2025-08-22T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "5.9958333333333333333333333333333333333333333333333",
      "contrast": "1.9041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/PM25/+0",
      "start_pst": "2025-08-21T00:00:00",
      "end_pst": "2025-08-22T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "4.5142098173913043478260869565217391304347826086957",
      "contrast": "0.0857901826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/NO2/+0",
      "start_pst": "2025-08-21T00:00:00",
      "end_pst": "2025-08-22T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "4.5130434782608695652173913043478260869565217391304",
      "contrast": "0.0869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/NO2/+0",
      "start_pst": "2025-08-21T00:00:00",
      "end_pst": "2025-08-22T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "12.810997",
      "contrast": "-1.310997",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/NO2/+0",
      "start_pst": "2025-08-21T00:00:00",
      "end_pst": "2025-08-22T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "12.8",
      "contrast": "-1.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/NO2/+0",
      "start_pst": "2025-08-21T00:00:00",
      "end_pst": "2025-08-22T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "5.8875343875",
      "contrast": "2.0124656125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/PM25/+1",
      "start_pst": "2025-08-21T01:00:00",
      "end_pst": "2025-08-22T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "5.875",
      "contrast": "2.025",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/PM25/+1",
      "start_pst": "2025-08-21T01:00:00",
      "end_pst": "2025-08-22T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "4.4634340304347826086956521739130434782608695652174",
      "contrast": "0.1365659695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/NO2/+1",
      "start_pst": "2025-08-21T01:00:00",
      "end_pst": "2025-08-22T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.6",
      "town": "4.4608695652173913043478260869565217391304347826087",
      "contrast": "0.1391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/NO2/+1",
      "start_pst": "2025-08-21T01:00:00",
      "end_pst": "2025-08-22T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "12.810997",
      "contrast": "-1.310997",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/NO2/+1",
      "start_pst": "2025-08-21T01:00:00",
      "end_pst": "2025-08-22T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "12.8",
      "contrast": "-1.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-21/NO2/+1",
      "start_pst": "2025-08-21T01:00:00",
      "end_pst": "2025-08-22T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.9153441",
      "contrast": "1.0846559",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/PM25/-1",
      "start_pst": "2025-08-21T23:00:00",
      "end_pst": "2025-08-22T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.9041666666666666666666666666666666666666666666667",
      "contrast": "1.0958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/PM25/-1",
      "start_pst": "2025-08-21T23:00:00",
      "end_pst": "2025-08-22T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "6.4786389478260869565217391304347826086956521739130",
      "contrast": "1.2213610521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/NO2/-1",
      "start_pst": "2025-08-21T23:00:00",
      "end_pst": "2025-08-22T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "6.4869565217391304347826086956521739130434782608696",
      "contrast": "1.2130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/NO2/-1",
      "start_pst": "2025-08-21T23:00:00",
      "end_pst": "2025-08-22T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "20.3540421",
      "contrast": "-2.4540421",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/NO2/-1",
      "start_pst": "2025-08-21T23:00:00",
      "end_pst": "2025-08-22T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "20.4",
      "contrast": "-2.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/NO2/-1",
      "start_pst": "2025-08-21T23:00:00",
      "end_pst": "2025-08-22T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.9850667583333333333333333333333333333333333333333",
      "contrast": "1.0149332416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/PM25/+0",
      "start_pst": "2025-08-22T00:00:00",
      "end_pst": "2025-08-23T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "5.975",
      "contrast": "1.025",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/PM25/+0",
      "start_pst": "2025-08-22T00:00:00",
      "end_pst": "2025-08-23T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "6.5255506956521739130434782608695652173913043478261",
      "contrast": "1.1744493043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/NO2/+0",
      "start_pst": "2025-08-22T00:00:00",
      "end_pst": "2025-08-23T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "6.5347826086956521739130434782608695652173913043478",
      "contrast": "1.1652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/NO2/+0",
      "start_pst": "2025-08-22T00:00:00",
      "end_pst": "2025-08-23T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "20.3540421",
      "contrast": "-2.4540421",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/NO2/+0",
      "start_pst": "2025-08-22T00:00:00",
      "end_pst": "2025-08-23T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "20.4",
      "contrast": "-2.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/NO2/+0",
      "start_pst": "2025-08-22T00:00:00",
      "end_pst": "2025-08-23T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "6.0475697958333333333333333333333333333333333333333",
      "contrast": "0.9524302041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/PM25/+1",
      "start_pst": "2025-08-22T01:00:00",
      "end_pst": "2025-08-23T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "6.0375",
      "contrast": "0.9625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/PM25/+1",
      "start_pst": "2025-08-22T01:00:00",
      "end_pst": "2025-08-23T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "6.5835990086956521739130434782608695652173913043478",
      "contrast": "1.1164009913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/NO2/+1",
      "start_pst": "2025-08-22T01:00:00",
      "end_pst": "2025-08-23T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "6.5956521739130434782608695652173913043478260869565",
      "contrast": "1.1043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/NO2/+1",
      "start_pst": "2025-08-22T01:00:00",
      "end_pst": "2025-08-23T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "20.3540421",
      "contrast": "-2.4540421",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/NO2/+1",
      "start_pst": "2025-08-22T01:00:00",
      "end_pst": "2025-08-23T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.9",
      "town": "20.4",
      "contrast": "-2.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-22/NO2/+1",
      "start_pst": "2025-08-22T01:00:00",
      "end_pst": "2025-08-23T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "6.7902715875",
      "contrast": "2.0097284125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/PM25/-1",
      "start_pst": "2025-08-22T23:00:00",
      "end_pst": "2025-08-23T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "6.7875",
      "contrast": "2.0125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/PM25/-1",
      "start_pst": "2025-08-22T23:00:00",
      "end_pst": "2025-08-23T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "6.5405733652173913043478260869565217391304347826087",
      "contrast": "2.5594266347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/NO2/-1",
      "start_pst": "2025-08-22T23:00:00",
      "end_pst": "2025-08-23T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "6.5347826086956521739130434782608695652173913043478",
      "contrast": "2.5652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/NO2/-1",
      "start_pst": "2025-08-22T23:00:00",
      "end_pst": "2025-08-23T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "19.2411957",
      "contrast": "-0.1411957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/NO2/-1",
      "start_pst": "2025-08-22T23:00:00",
      "end_pst": "2025-08-23T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "19.2",
      "contrast": "-0.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/NO2/-1",
      "start_pst": "2025-08-22T23:00:00",
      "end_pst": "2025-08-23T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "6.7516283875",
      "contrast": "2.0483716125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/PM25/+0",
      "start_pst": "2025-08-23T00:00:00",
      "end_pst": "2025-08-24T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "6.75",
      "contrast": "2.05",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/PM25/+0",
      "start_pst": "2025-08-23T00:00:00",
      "end_pst": "2025-08-24T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "6.7350341304347826086956521739130434782608695652174",
      "contrast": "2.3649658695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/NO2/+0",
      "start_pst": "2025-08-23T00:00:00",
      "end_pst": "2025-08-24T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "6.7260869565217391304347826086956521739130434782609",
      "contrast": "2.3739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/NO2/+0",
      "start_pst": "2025-08-23T00:00:00",
      "end_pst": "2025-08-24T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "19.2411957",
      "contrast": "-0.1411957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/NO2/+0",
      "start_pst": "2025-08-23T00:00:00",
      "end_pst": "2025-08-24T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "19.2",
      "contrast": "-0.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/NO2/+0",
      "start_pst": "2025-08-23T00:00:00",
      "end_pst": "2025-08-24T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "6.7067826791666666666666666666666666666666666666667",
      "contrast": "2.0932173208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/PM25/+1",
      "start_pst": "2025-08-23T01:00:00",
      "end_pst": "2025-08-24T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "6.7041666666666666666666666666666666666666666666667",
      "contrast": "2.0958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/PM25/+1",
      "start_pst": "2025-08-23T01:00:00",
      "end_pst": "2025-08-24T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "6.7434870826086956521739130434782608695652173913043",
      "contrast": "2.3565129173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/NO2/+1",
      "start_pst": "2025-08-23T01:00:00",
      "end_pst": "2025-08-24T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "6.7347826086956521739130434782608695652173913043478",
      "contrast": "2.3652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/NO2/+1",
      "start_pst": "2025-08-23T01:00:00",
      "end_pst": "2025-08-24T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "19.2411957",
      "contrast": "-0.1411957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/NO2/+1",
      "start_pst": "2025-08-23T01:00:00",
      "end_pst": "2025-08-24T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "19.2",
      "contrast": "-0.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-23/NO2/+1",
      "start_pst": "2025-08-23T01:00:00",
      "end_pst": "2025-08-24T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "8.5324590541666666666666666666666666666666666666667",
      "contrast": "3.7675409458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/PM25/-1",
      "start_pst": "2025-08-23T23:00:00",
      "end_pst": "2025-08-24T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "8.5375",
      "contrast": "3.7625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/PM25/-1",
      "start_pst": "2025-08-23T23:00:00",
      "end_pst": "2025-08-24T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "8.0552618608695652173913043478260869565217391304348",
      "contrast": "4.1447381391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/NO2/-1",
      "start_pst": "2025-08-23T23:00:00",
      "end_pst": "2025-08-24T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "8.0478260869565217391304347826086956521739130434783",
      "contrast": "4.1521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/NO2/-1",
      "start_pst": "2025-08-23T23:00:00",
      "end_pst": "2025-08-24T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "24.1895599",
      "contrast": "2.2104401",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/NO2/-1",
      "start_pst": "2025-08-23T23:00:00",
      "end_pst": "2025-08-24T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "24.2",
      "contrast": "2.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/NO2/-1",
      "start_pst": "2025-08-23T23:00:00",
      "end_pst": "2025-08-24T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "8.6181519791666666666666666666666666666666666666667",
      "contrast": "3.6818480208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/PM25/+0",
      "start_pst": "2025-08-24T00:00:00",
      "end_pst": "2025-08-25T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "8.6208333333333333333333333333333333333333333333333",
      "contrast": "3.6791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/PM25/+0",
      "start_pst": "2025-08-24T00:00:00",
      "end_pst": "2025-08-25T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "8.0114229869565217391304347826086956521739130434783",
      "contrast": "4.1885770130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/NO2/+0",
      "start_pst": "2025-08-24T00:00:00",
      "end_pst": "2025-08-25T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "8.0043478260869565217391304347826086956521739130435",
      "contrast": "4.1956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/NO2/+0",
      "start_pst": "2025-08-24T00:00:00",
      "end_pst": "2025-08-25T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "24.1895599",
      "contrast": "2.2104401",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/NO2/+0",
      "start_pst": "2025-08-24T00:00:00",
      "end_pst": "2025-08-25T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "24.2",
      "contrast": "2.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/NO2/+0",
      "start_pst": "2025-08-24T00:00:00",
      "end_pst": "2025-08-25T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "8.6848105625",
      "contrast": "3.6151894375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/PM25/+1",
      "start_pst": "2025-08-24T01:00:00",
      "end_pst": "2025-08-25T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.3",
      "town": "8.6875",
      "contrast": "3.6125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/PM25/+1",
      "start_pst": "2025-08-24T01:00:00",
      "end_pst": "2025-08-25T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "8.1314751173913043478260869565217391304347826086957",
      "contrast": "4.0685248826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/NO2/+1",
      "start_pst": "2025-08-24T01:00:00",
      "end_pst": "2025-08-25T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "8.1217391304347826086956521739130434782608695652174",
      "contrast": "4.0782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/NO2/+1",
      "start_pst": "2025-08-24T01:00:00",
      "end_pst": "2025-08-25T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "24.1895599",
      "contrast": "2.2104401",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/NO2/+1",
      "start_pst": "2025-08-24T01:00:00",
      "end_pst": "2025-08-25T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.4",
      "town": "24.2",
      "contrast": "2.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-24/NO2/+1",
      "start_pst": "2025-08-24T01:00:00",
      "end_pst": "2025-08-25T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "12.306633725",
      "contrast": "3.393366275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/PM25/-1",
      "start_pst": "2025-08-24T23:00:00",
      "end_pst": "2025-08-25T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "12.304166666666666666666666666666666666666666666667",
      "contrast": "3.395833333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/PM25/-1",
      "start_pst": "2025-08-24T23:00:00",
      "end_pst": "2025-08-25T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.1",
      "town": "8.9254934826086956521739130434782608695652173913043",
      "contrast": "5.1745065173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/NO2/-1",
      "start_pst": "2025-08-24T23:00:00",
      "end_pst": "2025-08-25T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.1",
      "town": "8.9173913043478260869565217391304347826086956521739",
      "contrast": "5.1826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/NO2/-1",
      "start_pst": "2025-08-24T23:00:00",
      "end_pst": "2025-08-25T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.2",
      "town": "18.3683643",
      "contrast": "10.8316357",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/NO2/-1",
      "start_pst": "2025-08-24T23:00:00",
      "end_pst": "2025-08-25T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.2",
      "town": "18.4",
      "contrast": "10.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/NO2/-1",
      "start_pst": "2025-08-24T23:00:00",
      "end_pst": "2025-08-25T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "12.426699770833333333333333333333333333333333333333",
      "contrast": "3.273300229166666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/PM25/+0",
      "start_pst": "2025-08-25T00:00:00",
      "end_pst": "2025-08-26T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "12.425",
      "contrast": "3.275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/PM25/+0",
      "start_pst": "2025-08-25T00:00:00",
      "end_pst": "2025-08-26T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.1",
      "town": "8.9996513608695652173913043478260869565217391304348",
      "contrast": "5.1003486391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/NO2/+0",
      "start_pst": "2025-08-25T00:00:00",
      "end_pst": "2025-08-26T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.1",
      "town": "8.9913043478260869565217391304347826086956521739130",
      "contrast": "5.1086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/NO2/+0",
      "start_pst": "2025-08-25T00:00:00",
      "end_pst": "2025-08-26T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.2",
      "town": "18.3683643",
      "contrast": "10.8316357",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/NO2/+0",
      "start_pst": "2025-08-25T00:00:00",
      "end_pst": "2025-08-26T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.2",
      "town": "18.4",
      "contrast": "10.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/NO2/+0",
      "start_pst": "2025-08-25T00:00:00",
      "end_pst": "2025-08-26T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "12.538486616666666666666666666666666666666666666667",
      "contrast": "3.161513383333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/PM25/+1",
      "start_pst": "2025-08-25T01:00:00",
      "end_pst": "2025-08-26T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "12.5375",
      "contrast": "3.1625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/PM25/+1",
      "start_pst": "2025-08-25T01:00:00",
      "end_pst": "2025-08-26T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.1",
      "town": "9.0125098782608695652173913043478260869565217391304",
      "contrast": "5.0874901217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/NO2/+1",
      "start_pst": "2025-08-25T01:00:00",
      "end_pst": "2025-08-26T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.1",
      "town": "9.0043478260869565217391304347826086956521739130435",
      "contrast": "5.0956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/NO2/+1",
      "start_pst": "2025-08-25T01:00:00",
      "end_pst": "2025-08-26T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.2",
      "town": "18.3683643",
      "contrast": "10.8316357",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/NO2/+1",
      "start_pst": "2025-08-25T01:00:00",
      "end_pst": "2025-08-26T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.2",
      "town": "18.4",
      "contrast": "10.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-25/NO2/+1",
      "start_pst": "2025-08-25T01:00:00",
      "end_pst": "2025-08-26T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "13.845597145833333333333333333333333333333333333333",
      "contrast": "3.854402854166666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/PM25/-1",
      "start_pst": "2025-08-25T23:00:00",
      "end_pst": "2025-08-26T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "13.8375",
      "contrast": "3.8625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/PM25/-1",
      "start_pst": "2025-08-25T23:00:00",
      "end_pst": "2025-08-26T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "8.8738357913043478260869565217391304347826086956522",
      "contrast": "6.0261642086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/NO2/-1",
      "start_pst": "2025-08-25T23:00:00",
      "end_pst": "2025-08-26T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "8.8739130434782608695652173913043478260869565217391",
      "contrast": "6.0260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/NO2/-1",
      "start_pst": "2025-08-25T23:00:00",
      "end_pst": "2025-08-26T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.4",
      "town": "17.1953239",
      "contrast": "8.2046761",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/NO2/-1",
      "start_pst": "2025-08-25T23:00:00",
      "end_pst": "2025-08-26T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.4",
      "town": "17.2",
      "contrast": "8.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/NO2/-1",
      "start_pst": "2025-08-25T23:00:00",
      "end_pst": "2025-08-26T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "14.014618475",
      "contrast": "3.685381525",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/PM25/+0",
      "start_pst": "2025-08-26T00:00:00",
      "end_pst": "2025-08-27T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "14.008333333333333333333333333333333333333333333333",
      "contrast": "3.691666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/PM25/+0",
      "start_pst": "2025-08-26T00:00:00",
      "end_pst": "2025-08-27T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "9.0116277173913043478260869565217391304347826086957",
      "contrast": "5.8883722826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/NO2/+0",
      "start_pst": "2025-08-26T00:00:00",
      "end_pst": "2025-08-27T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "9.0130434782608695652173913043478260869565217391304",
      "contrast": "5.8869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/NO2/+0",
      "start_pst": "2025-08-26T00:00:00",
      "end_pst": "2025-08-27T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.4",
      "town": "17.1953239",
      "contrast": "8.2046761",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/NO2/+0",
      "start_pst": "2025-08-26T00:00:00",
      "end_pst": "2025-08-27T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.4",
      "town": "17.2",
      "contrast": "8.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/NO2/+0",
      "start_pst": "2025-08-26T00:00:00",
      "end_pst": "2025-08-27T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "14.1443456375",
      "contrast": "3.5556543625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/PM25/+1",
      "start_pst": "2025-08-26T01:00:00",
      "end_pst": "2025-08-27T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "14.1375",
      "contrast": "3.5625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/PM25/+1",
      "start_pst": "2025-08-26T01:00:00",
      "end_pst": "2025-08-27T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "9.1469440869565217391304347826086956521739130434783",
      "contrast": "5.7530559130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/NO2/+1",
      "start_pst": "2025-08-26T01:00:00",
      "end_pst": "2025-08-27T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "9.1478260869565217391304347826086956521739130434783",
      "contrast": "5.7521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/NO2/+1",
      "start_pst": "2025-08-26T01:00:00",
      "end_pst": "2025-08-27T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.4",
      "town": "17.1953239",
      "contrast": "8.2046761",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/NO2/+1",
      "start_pst": "2025-08-26T01:00:00",
      "end_pst": "2025-08-27T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.4",
      "town": "17.2",
      "contrast": "8.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-26/NO2/+1",
      "start_pst": "2025-08-26T01:00:00",
      "end_pst": "2025-08-27T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "13.388843820833333333333333333333333333333333333333",
      "contrast": "4.211156179166666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/PM25/-1",
      "start_pst": "2025-08-26T23:00:00",
      "end_pst": "2025-08-27T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "13.383333333333333333333333333333333333333333333333",
      "contrast": "4.216666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/PM25/-1",
      "start_pst": "2025-08-26T23:00:00",
      "end_pst": "2025-08-27T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "9.6303220739130434782608695652173913043478260869565",
      "contrast": "3.1696779260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/NO2/-1",
      "start_pst": "2025-08-26T23:00:00",
      "end_pst": "2025-08-27T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "9.6347826086956521739130434782608695652173913043478",
      "contrast": "3.1652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/NO2/-1",
      "start_pst": "2025-08-26T23:00:00",
      "end_pst": "2025-08-27T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "14.5554132",
      "contrast": "7.8445868",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/NO2/-1",
      "start_pst": "2025-08-26T23:00:00",
      "end_pst": "2025-08-27T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "14.6",
      "contrast": "7.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/NO2/-1",
      "start_pst": "2025-08-26T23:00:00",
      "end_pst": "2025-08-27T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "13.287116970833333333333333333333333333333333333333",
      "contrast": "4.312883029166666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/PM25/+0",
      "start_pst": "2025-08-27T00:00:00",
      "end_pst": "2025-08-28T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "13.279166666666666666666666666666666666666666666667",
      "contrast": "4.320833333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/PM25/+0",
      "start_pst": "2025-08-27T00:00:00",
      "end_pst": "2025-08-28T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "9.6121130304347826086956521739130434782608695652174",
      "contrast": "3.1878869695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/NO2/+0",
      "start_pst": "2025-08-27T00:00:00",
      "end_pst": "2025-08-28T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "9.6173913043478260869565217391304347826086956521739",
      "contrast": "3.1826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/NO2/+0",
      "start_pst": "2025-08-27T00:00:00",
      "end_pst": "2025-08-28T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "14.5554132",
      "contrast": "7.8445868",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/NO2/+0",
      "start_pst": "2025-08-27T00:00:00",
      "end_pst": "2025-08-28T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "14.6",
      "contrast": "7.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/NO2/+0",
      "start_pst": "2025-08-27T00:00:00",
      "end_pst": "2025-08-28T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "13.213644829166666666666666666666666666666666666667",
      "contrast": "4.386355170833333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/PM25/+1",
      "start_pst": "2025-08-27T01:00:00",
      "end_pst": "2025-08-28T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "13.208333333333333333333333333333333333333333333333",
      "contrast": "4.391666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/PM25/+1",
      "start_pst": "2025-08-27T01:00:00",
      "end_pst": "2025-08-28T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "9.6352602826086956521739130434782608695652173913043",
      "contrast": "3.1647397173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/NO2/+1",
      "start_pst": "2025-08-27T01:00:00",
      "end_pst": "2025-08-28T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "9.6434782608695652173913043478260869565217391304348",
      "contrast": "3.1565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/NO2/+1",
      "start_pst": "2025-08-27T01:00:00",
      "end_pst": "2025-08-28T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "14.5554132",
      "contrast": "7.8445868",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/NO2/+1",
      "start_pst": "2025-08-27T01:00:00",
      "end_pst": "2025-08-28T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "14.6",
      "contrast": "7.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-27/NO2/+1",
      "start_pst": "2025-08-27T01:00:00",
      "end_pst": "2025-08-28T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "18.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.8",
      "town": "14.118616020833333333333333333333333333333333333333",
      "contrast": "4.681383979166666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/PM25/-1",
      "start_pst": "2025-08-27T23:00:00",
      "end_pst": "2025-08-28T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "18.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.8",
      "town": "14.120833333333333333333333333333333333333333333333",
      "contrast": "4.679166666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/PM25/-1",
      "start_pst": "2025-08-27T23:00:00",
      "end_pst": "2025-08-28T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "9.5244764260869565217391304347826086956521739130435",
      "contrast": "7.5755235739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/NO2/-1",
      "start_pst": "2025-08-27T23:00:00",
      "end_pst": "2025-08-28T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "9.5217391304347826086956521739130434782608695652174",
      "contrast": "7.5782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/NO2/-1",
      "start_pst": "2025-08-27T23:00:00",
      "end_pst": "2025-08-28T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.5",
      "town": "16.7648621",
      "contrast": "14.7351379",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/NO2/-1",
      "start_pst": "2025-08-27T23:00:00",
      "end_pst": "2025-08-28T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.5",
      "town": "16.8",
      "contrast": "14.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/NO2/-1",
      "start_pst": "2025-08-27T23:00:00",
      "end_pst": "2025-08-28T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "18.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.8",
      "town": "14.213631904166666666666666666666666666666666666667",
      "contrast": "4.586368095833333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/PM25/+0",
      "start_pst": "2025-08-28T00:00:00",
      "end_pst": "2025-08-29T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "18.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.8",
      "town": "14.216666666666666666666666666666666666666666666667",
      "contrast": "4.583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/PM25/+0",
      "start_pst": "2025-08-28T00:00:00",
      "end_pst": "2025-08-29T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "9.3661205869565217391304347826086956521739130434783",
      "contrast": "7.7338794130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/NO2/+0",
      "start_pst": "2025-08-28T00:00:00",
      "end_pst": "2025-08-29T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "9.3608695652173913043478260869565217391304347826087",
      "contrast": "7.7391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/NO2/+0",
      "start_pst": "2025-08-28T00:00:00",
      "end_pst": "2025-08-29T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.5",
      "town": "16.7648621",
      "contrast": "14.7351379",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/NO2/+0",
      "start_pst": "2025-08-28T00:00:00",
      "end_pst": "2025-08-29T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.5",
      "town": "16.8",
      "contrast": "14.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/NO2/+0",
      "start_pst": "2025-08-28T00:00:00",
      "end_pst": "2025-08-29T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "18.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.8",
      "town": "14.337320325",
      "contrast": "4.462679675",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/PM25/+1",
      "start_pst": "2025-08-28T01:00:00",
      "end_pst": "2025-08-29T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "18.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.8",
      "town": "14.3375",
      "contrast": "4.4625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/PM25/+1",
      "start_pst": "2025-08-28T01:00:00",
      "end_pst": "2025-08-29T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "9.1621548391304347826086956521739130434782608695652",
      "contrast": "7.9378451608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/NO2/+1",
      "start_pst": "2025-08-28T01:00:00",
      "end_pst": "2025-08-29T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "9.1565217391304347826086956521739130434782608695652",
      "contrast": "7.9434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/NO2/+1",
      "start_pst": "2025-08-28T01:00:00",
      "end_pst": "2025-08-29T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.5",
      "town": "16.7648621",
      "contrast": "14.7351379",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/NO2/+1",
      "start_pst": "2025-08-28T01:00:00",
      "end_pst": "2025-08-29T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.5",
      "town": "16.8",
      "contrast": "14.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-28/NO2/+1",
      "start_pst": "2025-08-28T01:00:00",
      "end_pst": "2025-08-29T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "15.890865333333333333333333333333333333333333333333",
      "contrast": "4.209134666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/PM25/-1",
      "start_pst": "2025-08-28T23:00:00",
      "end_pst": "2025-08-29T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "15.879166666666666666666666666666666666666666666667",
      "contrast": "4.220833333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/PM25/-1",
      "start_pst": "2025-08-28T23:00:00",
      "end_pst": "2025-08-29T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "7.6766872565217391304347826086956521739130434782609",
      "contrast": "6.9233127434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/NO2/-1",
      "start_pst": "2025-08-28T23:00:00",
      "end_pst": "2025-08-29T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "7.6826086956521739130434782608695652173913043478261",
      "contrast": "6.9173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/NO2/-1",
      "start_pst": "2025-08-28T23:00:00",
      "end_pst": "2025-08-29T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "41.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "41.8",
      "town": "11.4638033",
      "contrast": "30.3361967",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/NO2/-1",
      "start_pst": "2025-08-28T23:00:00",
      "end_pst": "2025-08-29T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "41.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "41.8",
      "town": "11.5",
      "contrast": "30.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/NO2/-1",
      "start_pst": "2025-08-28T23:00:00",
      "end_pst": "2025-08-29T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "16.001487220833333333333333333333333333333333333333",
      "contrast": "4.098512779166666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/PM25/+0",
      "start_pst": "2025-08-29T00:00:00",
      "end_pst": "2025-08-30T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "15.991666666666666666666666666666666666666666666667",
      "contrast": "4.108333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/PM25/+0",
      "start_pst": "2025-08-29T00:00:00",
      "end_pst": "2025-08-30T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "7.7142185304347826086956521739130434782608695652174",
      "contrast": "6.8857814695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/NO2/+0",
      "start_pst": "2025-08-29T00:00:00",
      "end_pst": "2025-08-30T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "7.7217391304347826086956521739130434782608695652174",
      "contrast": "6.8782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/NO2/+0",
      "start_pst": "2025-08-29T00:00:00",
      "end_pst": "2025-08-30T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "41.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "41.8",
      "town": "11.4638033",
      "contrast": "30.3361967",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/NO2/+0",
      "start_pst": "2025-08-29T00:00:00",
      "end_pst": "2025-08-30T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "41.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "41.8",
      "town": "11.5",
      "contrast": "30.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/NO2/+0",
      "start_pst": "2025-08-29T00:00:00",
      "end_pst": "2025-08-30T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "15.998091066666666666666666666666666666666666666667",
      "contrast": "4.101908933333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/PM25/+1",
      "start_pst": "2025-08-29T01:00:00",
      "end_pst": "2025-08-30T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "20.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.1",
      "town": "15.991666666666666666666666666666666666666666666667",
      "contrast": "4.108333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/PM25/+1",
      "start_pst": "2025-08-29T01:00:00",
      "end_pst": "2025-08-30T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "7.7581467",
      "contrast": "6.8418533",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/NO2/+1",
      "start_pst": "2025-08-29T01:00:00",
      "end_pst": "2025-08-30T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "7.7652173913043478260869565217391304347826086956522",
      "contrast": "6.8347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/NO2/+1",
      "start_pst": "2025-08-29T01:00:00",
      "end_pst": "2025-08-30T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "41.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "41.8",
      "town": "11.4638033",
      "contrast": "30.3361967",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/NO2/+1",
      "start_pst": "2025-08-29T01:00:00",
      "end_pst": "2025-08-30T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "41.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "41.8",
      "town": "11.5",
      "contrast": "30.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-29/NO2/+1",
      "start_pst": "2025-08-29T01:00:00",
      "end_pst": "2025-08-30T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "13.221502320833333333333333333333333333333333333333",
      "contrast": "3.878497679166666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/PM25/-1",
      "start_pst": "2025-08-29T23:00:00",
      "end_pst": "2025-08-30T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "13.220833333333333333333333333333333333333333333333",
      "contrast": "3.879166666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/PM25/-1",
      "start_pst": "2025-08-29T23:00:00",
      "end_pst": "2025-08-30T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.0694396478260869565217391304347826086956521739130",
      "contrast": "4.2305603521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/NO2/-1",
      "start_pst": "2025-08-29T23:00:00",
      "end_pst": "2025-08-30T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.0695652173913043478260869565217391304347826086957",
      "contrast": "4.2304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/NO2/-1",
      "start_pst": "2025-08-29T23:00:00",
      "end_pst": "2025-08-30T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.5",
      "town": "9.9111042",
      "contrast": "9.5888958",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/NO2/-1",
      "start_pst": "2025-08-29T23:00:00",
      "end_pst": "2025-08-30T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.5",
      "town": "9.9",
      "contrast": "9.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/NO2/-1",
      "start_pst": "2025-08-29T23:00:00",
      "end_pst": "2025-08-30T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "13.008223075",
      "contrast": "4.091776925",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/PM25/+0",
      "start_pst": "2025-08-30T00:00:00",
      "end_pst": "2025-08-31T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "13.004166666666666666666666666666666666666666666667",
      "contrast": "4.095833333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/PM25/+0",
      "start_pst": "2025-08-30T00:00:00",
      "end_pst": "2025-08-31T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "5.9429516869565217391304347826086956521739130434783",
      "contrast": "4.3570483130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/NO2/+0",
      "start_pst": "2025-08-30T00:00:00",
      "end_pst": "2025-08-31T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "5.9434782608695652173913043478260869565217391304348",
      "contrast": "4.3565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/NO2/+0",
      "start_pst": "2025-08-30T00:00:00",
      "end_pst": "2025-08-31T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.5",
      "town": "9.3921852",
      "contrast": "10.1078148",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/NO2/+0",
      "start_pst": "2025-08-30T00:00:00",
      "end_pst": "2025-08-31T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.5",
      "town": "9.4",
      "contrast": "10.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/NO2/+0",
      "start_pst": "2025-08-30T00:00:00",
      "end_pst": "2025-08-31T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "12.9398466125",
      "contrast": "4.1601533875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/PM25/+1",
      "start_pst": "2025-08-30T01:00:00",
      "end_pst": "2025-08-31T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "12.933333333333333333333333333333333333333333333333",
      "contrast": "4.166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/PM25/+1",
      "start_pst": "2025-08-30T01:00:00",
      "end_pst": "2025-08-31T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "5.9078055521739130434782608695652173913043478260870",
      "contrast": "4.3921944478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/NO2/+1",
      "start_pst": "2025-08-30T01:00:00",
      "end_pst": "2025-08-31T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "5.9086956521739130434782608695652173913043478260870",
      "contrast": "4.3913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/NO2/+1",
      "start_pst": "2025-08-30T01:00:00",
      "end_pst": "2025-08-31T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.5",
      "town": "9.3921852",
      "contrast": "10.1078148",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/NO2/+1",
      "start_pst": "2025-08-30T01:00:00",
      "end_pst": "2025-08-31T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.5",
      "town": "9.4",
      "contrast": "10.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-30/NO2/+1",
      "start_pst": "2025-08-30T01:00:00",
      "end_pst": "2025-08-31T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-31",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "21.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.8",
      "town": "20.932653579166666666666666666666666666666666666667",
      "contrast": "0.867346420833333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/PM25/-1",
      "start_pst": "2025-08-30T23:00:00",
      "end_pst": "2025-08-31T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-31",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "21.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.8",
      "town": "20.933333333333333333333333333333333333333333333333",
      "contrast": "0.866666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/PM25/-1",
      "start_pst": "2025-08-30T23:00:00",
      "end_pst": "2025-08-31T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-31",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "6.2133947434782608695652173913043478260869565217391",
      "contrast": "2.2866052565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/NO2/-1",
      "start_pst": "2025-08-30T23:00:00",
      "end_pst": "2025-08-31T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-31",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "6.2086956521739130434782608695652173913043478260870",
      "contrast": "2.2913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/NO2/-1",
      "start_pst": "2025-08-30T23:00:00",
      "end_pst": "2025-08-31T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.3",
      "town": "15.8956137",
      "contrast": "8.4043863",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/NO2/-1",
      "start_pst": "2025-08-30T23:00:00",
      "end_pst": "2025-08-31T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.3",
      "town": "15.9",
      "contrast": "8.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/NO2/-1",
      "start_pst": "2025-08-30T23:00:00",
      "end_pst": "2025-08-31T23:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "21.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.8",
      "town": "20.9673023125",
      "contrast": "0.8326976875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/PM25/+0",
      "start_pst": "2025-08-31T00:00:00",
      "end_pst": "2025-09-01T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "21.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.8",
      "town": "20.970833333333333333333333333333333333333333333333",
      "contrast": "0.829166666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/PM25/+0",
      "start_pst": "2025-08-31T00:00:00",
      "end_pst": "2025-09-01T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-31",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "6.3285387478260869565217391304347826086956521739130",
      "contrast": "2.1714612521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/NO2/+0",
      "start_pst": "2025-08-31T00:00:00",
      "end_pst": "2025-09-01T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-31",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "6.3260869565217391304347826086956521739130434782609",
      "contrast": "2.1739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/NO2/+0",
      "start_pst": "2025-08-31T00:00:00",
      "end_pst": "2025-09-01T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.3",
      "town": "15.8956137",
      "contrast": "8.4043863",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/NO2/+0",
      "start_pst": "2025-08-31T00:00:00",
      "end_pst": "2025-09-01T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.3",
      "town": "15.9",
      "contrast": "8.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/NO2/+0",
      "start_pst": "2025-08-31T00:00:00",
      "end_pst": "2025-09-01T00:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "21.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.8",
      "town": "20.97616465",
      "contrast": "0.82383535",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/PM25/+1",
      "start_pst": "2025-08-31T01:00:00",
      "end_pst": "2025-09-01T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "21.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.8",
      "town": "20.979166666666666666666666666666666666666666666667",
      "contrast": "0.820833333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/PM25/+1",
      "start_pst": "2025-08-31T01:00:00",
      "end_pst": "2025-09-01T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-08-31",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "6.3810193652173913043478260869565217391304347826087",
      "contrast": "2.1189806347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/NO2/+1",
      "start_pst": "2025-08-31T01:00:00",
      "end_pst": "2025-09-01T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-31",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "6.3782608695652173913043478260869565217391304347826",
      "contrast": "2.1217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/NO2/+1",
      "start_pst": "2025-08-31T01:00:00",
      "end_pst": "2025-09-01T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-08-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.3",
      "town": "15.8956137",
      "contrast": "8.4043863",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/NO2/+1",
      "start_pst": "2025-08-31T01:00:00",
      "end_pst": "2025-09-01T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-08-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.3",
      "town": "15.9",
      "contrast": "8.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-08-31/NO2/+1",
      "start_pst": "2025-08-31T01:00:00",
      "end_pst": "2025-09-01T01:00:00",
      "onsite_source": {
        "month": "2025-08",
        "date_printed": "8/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-2",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/10/WLNG-AQMS-Monthly-Report-2025-08-August-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-08.pdf",
        "source_pdf_sha256": "207894cdf75c7716286a63137007d68cbdcedfbbab4b1d10ec4c75e2b4eafc42",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-08/table-b1-air-native.csv",
        "source_csv_sha256": "0b3da9c425803dc7ce8ca578b7342ceb29bcb69208ed30f8ff8f8203b71c6246",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "12.116591658333333333333333333333333333333333333333",
      "contrast": "4.283408341666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/PM25/-1",
      "start_pst": "2025-08-31T23:00:00",
      "end_pst": "2025-09-01T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "12.108333333333333333333333333333333333333333333333",
      "contrast": "4.291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/PM25/-1",
      "start_pst": "2025-08-31T23:00:00",
      "end_pst": "2025-09-01T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "6.2897462478260869565217391304347826086956521739130",
      "contrast": "1.7102537521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/NO2/-1",
      "start_pst": "2025-08-31T23:00:00",
      "end_pst": "2025-09-01T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "6.2956521739130434782608695652173913043478260869565",
      "contrast": "1.7043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/NO2/-1",
      "start_pst": "2025-08-31T23:00:00",
      "end_pst": "2025-09-01T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.0",
      "town": "9.6501932",
      "contrast": "9.3498068",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/NO2/-1",
      "start_pst": "2025-08-31T23:00:00",
      "end_pst": "2025-09-01T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.0",
      "town": "9.7",
      "contrast": "9.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/NO2/-1",
      "start_pst": "2025-08-31T23:00:00",
      "end_pst": "2025-09-01T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "12.077446904166666666666666666666666666666666666667",
      "contrast": "4.322553095833333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/PM25/+0",
      "start_pst": "2025-09-01T00:00:00",
      "end_pst": "2025-09-02T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "12.066666666666666666666666666666666666666666666667",
      "contrast": "4.333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/PM25/+0",
      "start_pst": "2025-09-01T00:00:00",
      "end_pst": "2025-09-02T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "6.2153565",
      "contrast": "1.7846435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/NO2/+0",
      "start_pst": "2025-09-01T00:00:00",
      "end_pst": "2025-09-02T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "6.2173913043478260869565217391304347826086956521739",
      "contrast": "1.7826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/NO2/+0",
      "start_pst": "2025-09-01T00:00:00",
      "end_pst": "2025-09-02T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.0",
      "town": "9.1394672",
      "contrast": "9.8605328",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/NO2/+0",
      "start_pst": "2025-09-01T00:00:00",
      "end_pst": "2025-09-02T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.0",
      "town": "9.1",
      "contrast": "9.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/NO2/+0",
      "start_pst": "2025-09-01T00:00:00",
      "end_pst": "2025-09-02T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "12.015081570833333333333333333333333333333333333333",
      "contrast": "4.384918429166666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/PM25/+1",
      "start_pst": "2025-09-01T01:00:00",
      "end_pst": "2025-09-02T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "12.004166666666666666666666666666666666666666666667",
      "contrast": "4.395833333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/PM25/+1",
      "start_pst": "2025-09-01T01:00:00",
      "end_pst": "2025-09-02T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "6.1143538478260869565217391304347826086956521739130",
      "contrast": "1.8856461521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/NO2/+1",
      "start_pst": "2025-09-01T01:00:00",
      "end_pst": "2025-09-02T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "6.1173913043478260869565217391304347826086956521739",
      "contrast": "1.8826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/NO2/+1",
      "start_pst": "2025-09-01T01:00:00",
      "end_pst": "2025-09-02T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.0",
      "town": "9.1394672",
      "contrast": "9.8605328",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/NO2/+1",
      "start_pst": "2025-09-01T01:00:00",
      "end_pst": "2025-09-02T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.0",
      "town": "9.1",
      "contrast": "9.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-01/NO2/+1",
      "start_pst": "2025-09-01T01:00:00",
      "end_pst": "2025-09-02T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/1/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "33.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.8",
      "town": "17.045809275",
      "contrast": "16.754190725",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/PM25/-1",
      "start_pst": "2025-09-01T23:00:00",
      "end_pst": "2025-09-02T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "33.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.8",
      "town": "17.0375",
      "contrast": "16.7625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/PM25/-1",
      "start_pst": "2025-09-01T23:00:00",
      "end_pst": "2025-09-02T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "8.3928153478260869565217391304347826086956521739130",
      "contrast": "5.1071846521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/NO2/-1",
      "start_pst": "2025-09-01T23:00:00",
      "end_pst": "2025-09-02T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "8.3869565217391304347826086956521739130434782608696",
      "contrast": "5.1130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/NO2/-1",
      "start_pst": "2025-09-01T23:00:00",
      "end_pst": "2025-09-02T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.9",
      "town": "13.427597",
      "contrast": "15.472403",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/NO2/-1",
      "start_pst": "2025-09-01T23:00:00",
      "end_pst": "2025-09-02T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.9",
      "town": "13.4",
      "contrast": "15.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/NO2/-1",
      "start_pst": "2025-09-01T23:00:00",
      "end_pst": "2025-09-02T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "33.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.8",
      "town": "18.299745883333333333333333333333333333333333333333",
      "contrast": "15.500254116666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/PM25/+0",
      "start_pst": "2025-09-02T00:00:00",
      "end_pst": "2025-09-03T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "33.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.8",
      "town": "18.291666666666666666666666666666666666666666666667",
      "contrast": "15.508333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/PM25/+0",
      "start_pst": "2025-09-02T00:00:00",
      "end_pst": "2025-09-03T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "8.4301543913043478260869565217391304347826086956522",
      "contrast": "5.0698456086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/NO2/+0",
      "start_pst": "2025-09-02T00:00:00",
      "end_pst": "2025-09-03T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "8.4260869565217391304347826086956521739130434782609",
      "contrast": "5.0739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/NO2/+0",
      "start_pst": "2025-09-02T00:00:00",
      "end_pst": "2025-09-03T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.9",
      "town": "13.427597",
      "contrast": "15.472403",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/NO2/+0",
      "start_pst": "2025-09-02T00:00:00",
      "end_pst": "2025-09-03T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.9",
      "town": "13.4",
      "contrast": "15.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/NO2/+0",
      "start_pst": "2025-09-02T00:00:00",
      "end_pst": "2025-09-03T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "33.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.8",
      "town": "20.235615258333333333333333333333333333333333333333",
      "contrast": "13.564384741666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/PM25/+1",
      "start_pst": "2025-09-02T01:00:00",
      "end_pst": "2025-09-03T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "33.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.8",
      "town": "20.229166666666666666666666666666666666666666666667",
      "contrast": "13.570833333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/PM25/+1",
      "start_pst": "2025-09-02T01:00:00",
      "end_pst": "2025-09-03T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "8.4467625652173913043478260869565217391304347826087",
      "contrast": "5.0532374347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/NO2/+1",
      "start_pst": "2025-09-02T01:00:00",
      "end_pst": "2025-09-03T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "8.4391304347826086956521739130434782608695652173913",
      "contrast": "5.0608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/NO2/+1",
      "start_pst": "2025-09-02T01:00:00",
      "end_pst": "2025-09-03T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.9",
      "town": "13.427597",
      "contrast": "15.472403",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/NO2/+1",
      "start_pst": "2025-09-02T01:00:00",
      "end_pst": "2025-09-03T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.9",
      "town": "13.4",
      "contrast": "15.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-02/NO2/+1",
      "start_pst": "2025-09-02T01:00:00",
      "end_pst": "2025-09-03T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/2/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "179.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "179.2",
      "town": "172.70842958695652173913043478260869565217391304348",
      "contrast": "6.49157041304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/PM25/-1",
      "start_pst": "2025-09-02T23:00:00",
      "end_pst": "2025-09-03T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "179.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "179.2",
      "town": "172.7",
      "contrast": "6.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/PM25/-1",
      "start_pst": "2025-09-02T23:00:00",
      "end_pst": "2025-09-03T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "10.743189918181818181818181818181818181818181818182",
      "contrast": "9.156810081818181818181818181818181818181818181818",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/NO2/-1",
      "start_pst": "2025-09-02T23:00:00",
      "end_pst": "2025-09-03T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "10.736363636363636363636363636363636363636363636364",
      "contrast": "9.163636363636363636363636363636363636363636363636",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/NO2/-1",
      "start_pst": "2025-09-02T23:00:00",
      "end_pst": "2025-09-03T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "43.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "43.3",
      "town": "20.8158989",
      "contrast": "22.4841011",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/NO2/-1",
      "start_pst": "2025-09-02T23:00:00",
      "end_pst": "2025-09-03T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "43.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "43.3",
      "town": "20.8",
      "contrast": "22.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/NO2/-1",
      "start_pst": "2025-09-02T23:00:00",
      "end_pst": "2025-09-03T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "179.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "179.2",
      "town": "174.81356297826086956521739130434782608695652173913",
      "contrast": "4.38643702173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/PM25/+0",
      "start_pst": "2025-09-03T00:00:00",
      "end_pst": "2025-09-04T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "179.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "179.2",
      "town": "174.80434782608695652173913043478260869565217391304",
      "contrast": "4.39565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/PM25/+0",
      "start_pst": "2025-09-03T00:00:00",
      "end_pst": "2025-09-04T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "10.696563090909090909090909090909090909090909090909",
      "contrast": "9.203436909090909090909090909090909090909090909091",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/NO2/+0",
      "start_pst": "2025-09-03T00:00:00",
      "end_pst": "2025-09-04T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "10.690909090909090909090909090909090909090909090909",
      "contrast": "9.209090909090909090909090909090909090909090909091",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/NO2/+0",
      "start_pst": "2025-09-03T00:00:00",
      "end_pst": "2025-09-04T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "43.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "43.3",
      "town": "20.8158989",
      "contrast": "22.4841011",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/NO2/+0",
      "start_pst": "2025-09-03T00:00:00",
      "end_pst": "2025-09-04T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "43.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "43.3",
      "town": "20.8",
      "contrast": "22.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/NO2/+0",
      "start_pst": "2025-09-03T00:00:00",
      "end_pst": "2025-09-04T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "179.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "179.2",
      "town": "175.90274296956521739130434782608695652173913043478",
      "contrast": "3.29725703043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/PM25/+1",
      "start_pst": "2025-09-03T01:00:00",
      "end_pst": "2025-09-04T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "179.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "179.2",
      "town": "175.89565217391304347826086956521739130434782608696",
      "contrast": "3.30434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/PM25/+1",
      "start_pst": "2025-09-03T01:00:00",
      "end_pst": "2025-09-04T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "10.755017368181818181818181818181818181818181818182",
      "contrast": "9.144982631818181818181818181818181818181818181818",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/NO2/+1",
      "start_pst": "2025-09-03T01:00:00",
      "end_pst": "2025-09-04T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "10.75",
      "contrast": "9.15",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/NO2/+1",
      "start_pst": "2025-09-03T01:00:00",
      "end_pst": "2025-09-04T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "43.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "43.3",
      "town": "20.8158989",
      "contrast": "22.4841011",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/NO2/+1",
      "start_pst": "2025-09-03T01:00:00",
      "end_pst": "2025-09-04T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "43.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "43.3",
      "town": "20.8",
      "contrast": "22.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-03/NO2/+1",
      "start_pst": "2025-09-03T01:00:00",
      "end_pst": "2025-09-04T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/3/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "56.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "56.4",
      "town": "53.082504670833333333333333333333333333333333333333",
      "contrast": "3.317495329166666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/PM25/-1",
      "start_pst": "2025-09-03T23:00:00",
      "end_pst": "2025-09-04T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "56.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "56.4",
      "town": "53.083333333333333333333333333333333333333333333333",
      "contrast": "3.316666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/PM25/-1",
      "start_pst": "2025-09-03T23:00:00",
      "end_pst": "2025-09-04T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.5",
      "town": "11.706226204347826086956521739130434782608695652174",
      "contrast": "4.793773795652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/NO2/-1",
      "start_pst": "2025-09-03T23:00:00",
      "end_pst": "2025-09-04T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.5",
      "town": "11.708695652173913043478260869565217391304347826087",
      "contrast": "4.791304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/NO2/-1",
      "start_pst": "2025-09-03T23:00:00",
      "end_pst": "2025-09-04T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.9",
      "town": "18.4644566",
      "contrast": "9.4355434",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/NO2/-1",
      "start_pst": "2025-09-03T23:00:00",
      "end_pst": "2025-09-04T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.9",
      "town": "18.5",
      "contrast": "9.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/NO2/-1",
      "start_pst": "2025-09-03T23:00:00",
      "end_pst": "2025-09-04T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "56.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "56.4",
      "town": "50.237611533333333333333333333333333333333333333333",
      "contrast": "6.162388466666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/PM25/+0",
      "start_pst": "2025-09-04T00:00:00",
      "end_pst": "2025-09-05T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "56.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "56.4",
      "town": "50.241666666666666666666666666666666666666666666667",
      "contrast": "6.158333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/PM25/+0",
      "start_pst": "2025-09-04T00:00:00",
      "end_pst": "2025-09-05T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.5",
      "town": "11.747935691304347826086956521739130434782608695652",
      "contrast": "4.752064308695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/NO2/+0",
      "start_pst": "2025-09-04T00:00:00",
      "end_pst": "2025-09-05T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.5",
      "town": "11.747826086956521739130434782608695652173913043478",
      "contrast": "4.752173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/NO2/+0",
      "start_pst": "2025-09-04T00:00:00",
      "end_pst": "2025-09-05T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.9",
      "town": "18.4644566",
      "contrast": "9.4355434",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/NO2/+0",
      "start_pst": "2025-09-04T00:00:00",
      "end_pst": "2025-09-05T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.9",
      "town": "18.5",
      "contrast": "9.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/NO2/+0",
      "start_pst": "2025-09-04T00:00:00",
      "end_pst": "2025-09-05T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "56.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "56.4",
      "town": "47.861779770833333333333333333333333333333333333333",
      "contrast": "8.538220229166666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/PM25/+1",
      "start_pst": "2025-09-04T01:00:00",
      "end_pst": "2025-09-05T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "56.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "56.4",
      "town": "47.8625",
      "contrast": "8.5375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/PM25/+1",
      "start_pst": "2025-09-04T01:00:00",
      "end_pst": "2025-09-05T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.5",
      "town": "11.743416560869565217391304347826086956521739130435",
      "contrast": "4.756583439130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/NO2/+1",
      "start_pst": "2025-09-04T01:00:00",
      "end_pst": "2025-09-05T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.5",
      "town": "11.743478260869565217391304347826086956521739130435",
      "contrast": "4.756521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/NO2/+1",
      "start_pst": "2025-09-04T01:00:00",
      "end_pst": "2025-09-05T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.9",
      "town": "18.4644566",
      "contrast": "9.4355434",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/NO2/+1",
      "start_pst": "2025-09-04T01:00:00",
      "end_pst": "2025-09-05T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.9",
      "town": "18.5",
      "contrast": "9.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-04/NO2/+1",
      "start_pst": "2025-09-04T01:00:00",
      "end_pst": "2025-09-05T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/4/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "57.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "57.6",
      "town": "43.12123235",
      "contrast": "14.47876765",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/PM25/-1",
      "start_pst": "2025-09-04T23:00:00",
      "end_pst": "2025-09-05T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "57.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "57.6",
      "town": "43.125",
      "contrast": "14.475",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/PM25/-1",
      "start_pst": "2025-09-04T23:00:00",
      "end_pst": "2025-09-05T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.2",
      "town": "10.068841017391304347826086956521739130434782608696",
      "contrast": "5.131158982608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/NO2/-1",
      "start_pst": "2025-09-04T23:00:00",
      "end_pst": "2025-09-05T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.2",
      "town": "10.060869565217391304347826086956521739130434782609",
      "contrast": "5.139130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/NO2/-1",
      "start_pst": "2025-09-04T23:00:00",
      "end_pst": "2025-09-05T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "16.9440918",
      "contrast": "6.8559082",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/NO2/-1",
      "start_pst": "2025-09-04T23:00:00",
      "end_pst": "2025-09-05T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "16.9",
      "contrast": "6.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/NO2/-1",
      "start_pst": "2025-09-04T23:00:00",
      "end_pst": "2025-09-05T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "57.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "57.6",
      "town": "43.837507725",
      "contrast": "13.762492275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/PM25/+0",
      "start_pst": "2025-09-05T00:00:00",
      "end_pst": "2025-09-06T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "57.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "57.6",
      "town": "43.841666666666666666666666666666666666666666666667",
      "contrast": "13.758333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/PM25/+0",
      "start_pst": "2025-09-05T00:00:00",
      "end_pst": "2025-09-06T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.2",
      "town": "10.018869539130434782608695652173913043478260869565",
      "contrast": "5.181130460869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/NO2/+0",
      "start_pst": "2025-09-05T00:00:00",
      "end_pst": "2025-09-06T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.2",
      "town": "10.013043478260869565217391304347826086956521739130",
      "contrast": "5.186956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/NO2/+0",
      "start_pst": "2025-09-05T00:00:00",
      "end_pst": "2025-09-06T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "16.9440918",
      "contrast": "6.8559082",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/NO2/+0",
      "start_pst": "2025-09-05T00:00:00",
      "end_pst": "2025-09-06T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "16.9",
      "contrast": "6.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/NO2/+0",
      "start_pst": "2025-09-05T00:00:00",
      "end_pst": "2025-09-06T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "57.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "57.6",
      "town": "44.814847945833333333333333333333333333333333333333",
      "contrast": "12.785152054166666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/PM25/+1",
      "start_pst": "2025-09-05T01:00:00",
      "end_pst": "2025-09-06T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "57.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "57.6",
      "town": "44.820833333333333333333333333333333333333333333333",
      "contrast": "12.779166666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/PM25/+1",
      "start_pst": "2025-09-05T01:00:00",
      "end_pst": "2025-09-06T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.2",
      "town": "9.9717099260869565217391304347826086956521739130435",
      "contrast": "5.2282900739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/NO2/+1",
      "start_pst": "2025-09-05T01:00:00",
      "end_pst": "2025-09-06T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.2",
      "town": "9.9652173913043478260869565217391304347826086956522",
      "contrast": "5.2347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/NO2/+1",
      "start_pst": "2025-09-05T01:00:00",
      "end_pst": "2025-09-06T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "16.9440918",
      "contrast": "6.8559082",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/NO2/+1",
      "start_pst": "2025-09-05T01:00:00",
      "end_pst": "2025-09-06T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "16.9",
      "contrast": "6.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-05/NO2/+1",
      "start_pst": "2025-09-05T01:00:00",
      "end_pst": "2025-09-06T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/5/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "53.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "53.5",
      "town": "49.288199508333333333333333333333333333333333333333",
      "contrast": "4.211800491666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/PM25/-1",
      "start_pst": "2025-09-05T23:00:00",
      "end_pst": "2025-09-06T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "53.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "53.5",
      "town": "49.295833333333333333333333333333333333333333333333",
      "contrast": "4.204166666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/PM25/-1",
      "start_pst": "2025-09-05T23:00:00",
      "end_pst": "2025-09-06T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "8.3051837086956521739130434782608695652173913043478",
      "contrast": "3.1948162913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/NO2/-1",
      "start_pst": "2025-09-05T23:00:00",
      "end_pst": "2025-09-06T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "8.2956521739130434782608695652173913043478260869565",
      "contrast": "3.2043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/NO2/-1",
      "start_pst": "2025-09-05T23:00:00",
      "end_pst": "2025-09-06T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.3",
      "town": "14.2400322",
      "contrast": "8.0599678",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/NO2/-1",
      "start_pst": "2025-09-05T23:00:00",
      "end_pst": "2025-09-06T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.3",
      "town": "14.2",
      "contrast": "8.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/NO2/-1",
      "start_pst": "2025-09-05T23:00:00",
      "end_pst": "2025-09-06T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "53.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "53.5",
      "town": "48.349528075",
      "contrast": "5.150471925",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/PM25/+0",
      "start_pst": "2025-09-06T00:00:00",
      "end_pst": "2025-09-07T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "53.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "53.5",
      "town": "48.354166666666666666666666666666666666666666666667",
      "contrast": "5.145833333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/PM25/+0",
      "start_pst": "2025-09-06T00:00:00",
      "end_pst": "2025-09-07T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "8.4536430826086956521739130434782608695652173913043",
      "contrast": "3.0463569173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/NO2/+0",
      "start_pst": "2025-09-06T00:00:00",
      "end_pst": "2025-09-07T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "8.4434782608695652173913043478260869565217391304348",
      "contrast": "3.0565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/NO2/+0",
      "start_pst": "2025-09-06T00:00:00",
      "end_pst": "2025-09-07T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.3",
      "town": "14.2400322",
      "contrast": "8.0599678",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/NO2/+0",
      "start_pst": "2025-09-06T00:00:00",
      "end_pst": "2025-09-07T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.3",
      "town": "14.2",
      "contrast": "8.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/NO2/+0",
      "start_pst": "2025-09-06T00:00:00",
      "end_pst": "2025-09-07T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "53.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "53.5",
      "town": "47.029497266666666666666666666666666666666666666667",
      "contrast": "6.470502733333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/PM25/+1",
      "start_pst": "2025-09-06T01:00:00",
      "end_pst": "2025-09-07T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "53.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "53.5",
      "town": "47.033333333333333333333333333333333333333333333333",
      "contrast": "6.466666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/PM25/+1",
      "start_pst": "2025-09-06T01:00:00",
      "end_pst": "2025-09-07T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "8.5863023136363636363636363636363636363636363636364",
      "contrast": "2.9136976863636363636363636363636363636363636363636",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/NO2/+1",
      "start_pst": "2025-09-06T01:00:00",
      "end_pst": "2025-09-07T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "8.5772727272727272727272727272727272727272727272727",
      "contrast": "2.9227272727272727272727272727272727272727272727273",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/NO2/+1",
      "start_pst": "2025-09-06T01:00:00",
      "end_pst": "2025-09-07T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.3",
      "town": "14.2400322",
      "contrast": "8.0599678",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/NO2/+1",
      "start_pst": "2025-09-06T01:00:00",
      "end_pst": "2025-09-07T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.3",
      "town": "14.2",
      "contrast": "8.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-06/NO2/+1",
      "start_pst": "2025-09-06T01:00:00",
      "end_pst": "2025-09-07T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/6/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "16.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.2",
      "town": "11.764241991666666666666666666666666666666666666667",
      "contrast": "4.435758008333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/PM25/-1",
      "start_pst": "2025-09-06T23:00:00",
      "end_pst": "2025-09-07T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "16.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.2",
      "town": "11.766666666666666666666666666666666666666666666667",
      "contrast": "4.433333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/PM25/-1",
      "start_pst": "2025-09-06T23:00:00",
      "end_pst": "2025-09-07T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "7.5115822",
      "contrast": "2.7884178",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/NO2/-1",
      "start_pst": "2025-09-06T23:00:00",
      "end_pst": "2025-09-07T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "7.5173913043478260869565217391304347826086956521739",
      "contrast": "2.7826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/NO2/-1",
      "start_pst": "2025-09-06T23:00:00",
      "end_pst": "2025-09-07T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.3",
      "town": "12.8944006",
      "contrast": "13.4055994",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/NO2/-1",
      "start_pst": "2025-09-06T23:00:00",
      "end_pst": "2025-09-07T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.3",
      "town": "12.9",
      "contrast": "13.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/NO2/-1",
      "start_pst": "2025-09-06T23:00:00",
      "end_pst": "2025-09-07T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "16.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.2",
      "town": "11.411881504166666666666666666666666666666666666667",
      "contrast": "4.788118495833333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/PM25/+0",
      "start_pst": "2025-09-07T00:00:00",
      "end_pst": "2025-09-08T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "16.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.2",
      "town": "11.416666666666666666666666666666666666666666666667",
      "contrast": "4.783333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/PM25/+0",
      "start_pst": "2025-09-07T00:00:00",
      "end_pst": "2025-09-08T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "7.3531642727272727272727272727272727272727272727273",
      "contrast": "2.9468357272727272727272727272727272727272727272727",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/NO2/+0",
      "start_pst": "2025-09-07T00:00:00",
      "end_pst": "2025-09-08T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "7.3590909090909090909090909090909090909090909090909",
      "contrast": "2.9409090909090909090909090909090909090909090909091",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/NO2/+0",
      "start_pst": "2025-09-07T00:00:00",
      "end_pst": "2025-09-08T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.3",
      "town": "12.8944006",
      "contrast": "13.4055994",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/NO2/+0",
      "start_pst": "2025-09-07T00:00:00",
      "end_pst": "2025-09-08T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.3",
      "town": "12.9",
      "contrast": "13.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/NO2/+0",
      "start_pst": "2025-09-07T00:00:00",
      "end_pst": "2025-09-08T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "16.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.2",
      "town": "11.028811929166666666666666666666666666666666666667",
      "contrast": "5.171188070833333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/PM25/+1",
      "start_pst": "2025-09-07T01:00:00",
      "end_pst": "2025-09-08T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "16.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.2",
      "town": "11.033333333333333333333333333333333333333333333333",
      "contrast": "5.166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/PM25/+1",
      "start_pst": "2025-09-07T01:00:00",
      "end_pst": "2025-09-08T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "7.2851360478260869565217391304347826086956521739130",
      "contrast": "3.0148639521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/NO2/+1",
      "start_pst": "2025-09-07T01:00:00",
      "end_pst": "2025-09-08T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "7.2913043478260869565217391304347826086956521739130",
      "contrast": "3.0086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/NO2/+1",
      "start_pst": "2025-09-07T01:00:00",
      "end_pst": "2025-09-08T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.3",
      "town": "12.8944006",
      "contrast": "13.4055994",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/NO2/+1",
      "start_pst": "2025-09-07T01:00:00",
      "end_pst": "2025-09-08T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.3",
      "town": "12.9",
      "contrast": "13.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-07/NO2/+1",
      "start_pst": "2025-09-07T01:00:00",
      "end_pst": "2025-09-08T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/7/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "8.1723324291666666666666666666666666666666666666667",
      "contrast": "3.8276675708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/PM25/-1",
      "start_pst": "2025-09-07T23:00:00",
      "end_pst": "2025-09-08T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "8.1625",
      "contrast": "3.8375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/PM25/-1",
      "start_pst": "2025-09-07T23:00:00",
      "end_pst": "2025-09-08T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "7.0568724363636363636363636363636363636363636363636",
      "contrast": "0.2431275636363636363636363636363636363636363636364",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/NO2/-1",
      "start_pst": "2025-09-07T23:00:00",
      "end_pst": "2025-09-08T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "7.0590909090909090909090909090909090909090909090909",
      "contrast": "0.2409090909090909090909090909090909090909090909091",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/NO2/-1",
      "start_pst": "2025-09-07T23:00:00",
      "end_pst": "2025-09-08T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "11.2637844",
      "contrast": "6.8362156",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/NO2/-1",
      "start_pst": "2025-09-07T23:00:00",
      "end_pst": "2025-09-08T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "11.3",
      "contrast": "6.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/NO2/-1",
      "start_pst": "2025-09-07T23:00:00",
      "end_pst": "2025-09-08T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "8.1863476666666666666666666666666666666666666666667",
      "contrast": "3.8136523333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/PM25/+0",
      "start_pst": "2025-09-08T00:00:00",
      "end_pst": "2025-09-09T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "8.175",
      "contrast": "3.825",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/PM25/+0",
      "start_pst": "2025-09-08T00:00:00",
      "end_pst": "2025-09-09T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "6.9380174565217391304347826086956521739130434782609",
      "contrast": "0.3619825434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/NO2/+0",
      "start_pst": "2025-09-08T00:00:00",
      "end_pst": "2025-09-09T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "6.9391304347826086956521739130434782608695652173913",
      "contrast": "0.3608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/NO2/+0",
      "start_pst": "2025-09-08T00:00:00",
      "end_pst": "2025-09-09T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "11.2637844",
      "contrast": "6.8362156",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/NO2/+0",
      "start_pst": "2025-09-08T00:00:00",
      "end_pst": "2025-09-09T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "11.3",
      "contrast": "6.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/NO2/+0",
      "start_pst": "2025-09-08T00:00:00",
      "end_pst": "2025-09-09T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "8.2498715375",
      "contrast": "3.7501284625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/PM25/+1",
      "start_pst": "2025-09-08T01:00:00",
      "end_pst": "2025-09-09T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "8.2375",
      "contrast": "3.7625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/PM25/+1",
      "start_pst": "2025-09-08T01:00:00",
      "end_pst": "2025-09-09T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "6.8415919347826086956521739130434782608695652173913",
      "contrast": "0.4584080652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/NO2/+1",
      "start_pst": "2025-09-08T01:00:00",
      "end_pst": "2025-09-09T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "6.8434782608695652173913043478260869565217391304348",
      "contrast": "0.4565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/NO2/+1",
      "start_pst": "2025-09-08T01:00:00",
      "end_pst": "2025-09-09T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "11.2637844",
      "contrast": "6.8362156",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/NO2/+1",
      "start_pst": "2025-09-08T01:00:00",
      "end_pst": "2025-09-09T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "11.3",
      "contrast": "6.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-08/NO2/+1",
      "start_pst": "2025-09-08T01:00:00",
      "end_pst": "2025-09-09T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/8/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "9.3515703166666666666666666666666666666666666666667",
      "contrast": "3.9484296833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/PM25/-1",
      "start_pst": "2025-09-08T23:00:00",
      "end_pst": "2025-09-09T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "9.35",
      "contrast": "3.95",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/PM25/-1",
      "start_pst": "2025-09-08T23:00:00",
      "end_pst": "2025-09-09T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "3.8356878826086956521739130434782608695652173913043",
      "contrast": "4.2643121173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/NO2/-1",
      "start_pst": "2025-09-08T23:00:00",
      "end_pst": "2025-09-09T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "3.8304347826086956521739130434782608695652173913043",
      "contrast": "4.2695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/NO2/-1",
      "start_pst": "2025-09-08T23:00:00",
      "end_pst": "2025-09-09T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.1",
      "town": "7.0282359",
      "contrast": "27.0717641",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/NO2/-1",
      "start_pst": "2025-09-08T23:00:00",
      "end_pst": "2025-09-09T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.1",
      "town": "7",
      "contrast": "27.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/NO2/-1",
      "start_pst": "2025-09-08T23:00:00",
      "end_pst": "2025-09-09T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "9.2701591958333333333333333333333333333333333333333",
      "contrast": "4.0298408041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/PM25/+0",
      "start_pst": "2025-09-09T00:00:00",
      "end_pst": "2025-09-10T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "9.2708333333333333333333333333333333333333333333333",
      "contrast": "4.0291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/PM25/+0",
      "start_pst": "2025-09-09T00:00:00",
      "end_pst": "2025-09-10T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "3.9522140695652173913043478260869565217391304347826",
      "contrast": "4.1477859304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/NO2/+0",
      "start_pst": "2025-09-09T00:00:00",
      "end_pst": "2025-09-10T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "3.9478260869565217391304347826086956521739130434783",
      "contrast": "4.1521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/NO2/+0",
      "start_pst": "2025-09-09T00:00:00",
      "end_pst": "2025-09-10T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.1",
      "town": "7.0282359",
      "contrast": "27.0717641",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/NO2/+0",
      "start_pst": "2025-09-09T00:00:00",
      "end_pst": "2025-09-10T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.1",
      "town": "7",
      "contrast": "27.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/NO2/+0",
      "start_pst": "2025-09-09T00:00:00",
      "end_pst": "2025-09-10T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "9.1502020083333333333333333333333333333333333333333",
      "contrast": "4.1497979916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/PM25/+1",
      "start_pst": "2025-09-09T01:00:00",
      "end_pst": "2025-09-10T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "9.1541666666666666666666666666666666666666666666667",
      "contrast": "4.1458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/PM25/+1",
      "start_pst": "2025-09-09T01:00:00",
      "end_pst": "2025-09-10T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "4.0539563260869565217391304347826086956521739130435",
      "contrast": "4.0460436739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/NO2/+1",
      "start_pst": "2025-09-09T01:00:00",
      "end_pst": "2025-09-10T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "4.0478260869565217391304347826086956521739130434783",
      "contrast": "4.0521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/NO2/+1",
      "start_pst": "2025-09-09T01:00:00",
      "end_pst": "2025-09-10T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.1",
      "town": "7.0282359",
      "contrast": "27.0717641",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/NO2/+1",
      "start_pst": "2025-09-09T01:00:00",
      "end_pst": "2025-09-10T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "34.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "34.1",
      "town": "7",
      "contrast": "27.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-09/NO2/+1",
      "start_pst": "2025-09-09T01:00:00",
      "end_pst": "2025-09-10T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/9/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "7.6574398291666666666666666666666666666666666666667",
      "contrast": "4.2425601708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/PM25/-1",
      "start_pst": "2025-09-09T23:00:00",
      "end_pst": "2025-09-10T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "7.6583333333333333333333333333333333333333333333333",
      "contrast": "4.2416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/PM25/-1",
      "start_pst": "2025-09-09T23:00:00",
      "end_pst": "2025-09-10T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "6.3491729130434782608695652173913043478260869565217",
      "contrast": "0.8508270869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/NO2/-1",
      "start_pst": "2025-09-09T23:00:00",
      "end_pst": "2025-09-10T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "6.3478260869565217391304347826086956521739130434783",
      "contrast": "0.8521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/NO2/-1",
      "start_pst": "2025-09-09T23:00:00",
      "end_pst": "2025-09-10T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.0",
      "town": "11.4133282",
      "contrast": "7.5866718",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/NO2/-1",
      "start_pst": "2025-09-09T23:00:00",
      "end_pst": "2025-09-10T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.0",
      "town": "11.4",
      "contrast": "7.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/NO2/-1",
      "start_pst": "2025-09-09T23:00:00",
      "end_pst": "2025-09-10T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "7.7556006708333333333333333333333333333333333333333",
      "contrast": "4.1443993291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/PM25/+0",
      "start_pst": "2025-09-10T00:00:00",
      "end_pst": "2025-09-11T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "7.7541666666666666666666666666666666666666666666667",
      "contrast": "4.1458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/PM25/+0",
      "start_pst": "2025-09-10T00:00:00",
      "end_pst": "2025-09-11T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "6.3612932",
      "contrast": "0.8387068",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/NO2/+0",
      "start_pst": "2025-09-10T00:00:00",
      "end_pst": "2025-09-11T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "6.3608695652173913043478260869565217391304347826087",
      "contrast": "0.8391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/NO2/+0",
      "start_pst": "2025-09-10T00:00:00",
      "end_pst": "2025-09-11T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.0",
      "town": "11.4133282",
      "contrast": "7.5866718",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/NO2/+0",
      "start_pst": "2025-09-10T00:00:00",
      "end_pst": "2025-09-11T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.0",
      "town": "11.4",
      "contrast": "7.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/NO2/+0",
      "start_pst": "2025-09-10T00:00:00",
      "end_pst": "2025-09-11T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "7.8303663708333333333333333333333333333333333333333",
      "contrast": "4.0696336291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/PM25/+1",
      "start_pst": "2025-09-10T01:00:00",
      "end_pst": "2025-09-11T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "7.8291666666666666666666666666666666666666666666667",
      "contrast": "4.0708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/PM25/+1",
      "start_pst": "2025-09-10T01:00:00",
      "end_pst": "2025-09-11T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "6.3233542521739130434782608695652173913043478260870",
      "contrast": "0.8766457478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/NO2/+1",
      "start_pst": "2025-09-10T01:00:00",
      "end_pst": "2025-09-11T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "6.3217391304347826086956521739130434782608695652174",
      "contrast": "0.8782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/NO2/+1",
      "start_pst": "2025-09-10T01:00:00",
      "end_pst": "2025-09-11T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.0",
      "town": "11.4133282",
      "contrast": "7.5866718",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/NO2/+1",
      "start_pst": "2025-09-10T01:00:00",
      "end_pst": "2025-09-11T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.0",
      "town": "11.4",
      "contrast": "7.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-10/NO2/+1",
      "start_pst": "2025-09-10T01:00:00",
      "end_pst": "2025-09-11T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/10/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "8.5982150333333333333333333333333333333333333333333",
      "contrast": "3.9017849666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/PM25/-1",
      "start_pst": "2025-09-10T23:00:00",
      "end_pst": "2025-09-11T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "8.6",
      "contrast": "3.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/PM25/-1",
      "start_pst": "2025-09-10T23:00:00",
      "end_pst": "2025-09-11T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "5.3174120130434782608695652173913043478260869565217",
      "contrast": "-1.3174120130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/NO2/-1",
      "start_pst": "2025-09-10T23:00:00",
      "end_pst": "2025-09-11T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "5.3217391304347826086956521739130434782608695652174",
      "contrast": "-1.3217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/NO2/-1",
      "start_pst": "2025-09-10T23:00:00",
      "end_pst": "2025-09-11T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "10.4113312",
      "contrast": "1.5886688",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/NO2/-1",
      "start_pst": "2025-09-10T23:00:00",
      "end_pst": "2025-09-11T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "10.4",
      "contrast": "1.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/NO2/-1",
      "start_pst": "2025-09-10T23:00:00",
      "end_pst": "2025-09-11T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "8.5416353666666666666666666666666666666666666666667",
      "contrast": "3.9583646333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/PM25/+0",
      "start_pst": "2025-09-11T00:00:00",
      "end_pst": "2025-09-12T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "8.5458333333333333333333333333333333333333333333333",
      "contrast": "3.9541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/PM25/+0",
      "start_pst": "2025-09-11T00:00:00",
      "end_pst": "2025-09-12T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "5.2564489434782608695652173913043478260869565217391",
      "contrast": "-1.2564489434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/NO2/+0",
      "start_pst": "2025-09-11T00:00:00",
      "end_pst": "2025-09-12T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "5.2608695652173913043478260869565217391304347826087",
      "contrast": "-1.2608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/NO2/+0",
      "start_pst": "2025-09-11T00:00:00",
      "end_pst": "2025-09-12T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "10.4113312",
      "contrast": "1.5886688",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/NO2/+0",
      "start_pst": "2025-09-11T00:00:00",
      "end_pst": "2025-09-12T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "10.4",
      "contrast": "1.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/NO2/+0",
      "start_pst": "2025-09-11T00:00:00",
      "end_pst": "2025-09-12T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "8.5093982333333333333333333333333333333333333333333",
      "contrast": "3.9906017666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/PM25/+1",
      "start_pst": "2025-09-11T01:00:00",
      "end_pst": "2025-09-12T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "8.5125",
      "contrast": "3.9875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/PM25/+1",
      "start_pst": "2025-09-11T01:00:00",
      "end_pst": "2025-09-12T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "5.3235095391304347826086956521739130434782608695652",
      "contrast": "-1.3235095391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/NO2/+1",
      "start_pst": "2025-09-11T01:00:00",
      "end_pst": "2025-09-12T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.0",
      "town": "5.3304347826086956521739130434782608695652173913043",
      "contrast": "-1.3304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/NO2/+1",
      "start_pst": "2025-09-11T01:00:00",
      "end_pst": "2025-09-12T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "10.4113312",
      "contrast": "1.5886688",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/NO2/+1",
      "start_pst": "2025-09-11T01:00:00",
      "end_pst": "2025-09-12T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.0",
      "town": "10.4",
      "contrast": "1.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-11/NO2/+1",
      "start_pst": "2025-09-11T01:00:00",
      "end_pst": "2025-09-12T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/11/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "7.6359624583333333333333333333333333333333333333333",
      "contrast": "3.8640375416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/PM25/-1",
      "start_pst": "2025-09-11T23:00:00",
      "end_pst": "2025-09-12T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "7.6416666666666666666666666666666666666666666666667",
      "contrast": "3.8583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/PM25/-1",
      "start_pst": "2025-09-11T23:00:00",
      "end_pst": "2025-09-12T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "8.3365830434782608695652173913043478260869565217391",
      "contrast": "-0.2365830434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/NO2/-1",
      "start_pst": "2025-09-11T23:00:00",
      "end_pst": "2025-09-12T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "8.3304347826086956521739130434782608695652173913043",
      "contrast": "-0.2304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/NO2/-1",
      "start_pst": "2025-09-11T23:00:00",
      "end_pst": "2025-09-12T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "10.8357353",
      "contrast": "4.8642647",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/NO2/-1",
      "start_pst": "2025-09-11T23:00:00",
      "end_pst": "2025-09-12T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "10.8",
      "contrast": "4.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/NO2/-1",
      "start_pst": "2025-09-11T23:00:00",
      "end_pst": "2025-09-12T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "7.651197125",
      "contrast": "3.848802875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/PM25/+0",
      "start_pst": "2025-09-12T00:00:00",
      "end_pst": "2025-09-13T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "7.6541666666666666666666666666666666666666666666667",
      "contrast": "3.8458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/PM25/+0",
      "start_pst": "2025-09-12T00:00:00",
      "end_pst": "2025-09-13T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "8.5226988260869565217391304347826086956521739130435",
      "contrast": "-0.4226988260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/NO2/+0",
      "start_pst": "2025-09-12T00:00:00",
      "end_pst": "2025-09-13T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "8.5173913043478260869565217391304347826086956521739",
      "contrast": "-0.4173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/NO2/+0",
      "start_pst": "2025-09-12T00:00:00",
      "end_pst": "2025-09-13T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "10.8357353",
      "contrast": "4.8642647",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/NO2/+0",
      "start_pst": "2025-09-12T00:00:00",
      "end_pst": "2025-09-13T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "10.8",
      "contrast": "4.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/NO2/+0",
      "start_pst": "2025-09-12T00:00:00",
      "end_pst": "2025-09-13T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "7.6534872541666666666666666666666666666666666666667",
      "contrast": "3.8465127458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/PM25/+1",
      "start_pst": "2025-09-12T01:00:00",
      "end_pst": "2025-09-13T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "7.6541666666666666666666666666666666666666666666667",
      "contrast": "3.8458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/PM25/+1",
      "start_pst": "2025-09-12T01:00:00",
      "end_pst": "2025-09-13T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "8.6166333391304347826086956521739130434782608695652",
      "contrast": "-0.5166333391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/NO2/+1",
      "start_pst": "2025-09-12T01:00:00",
      "end_pst": "2025-09-13T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "8.6086956521739130434782608695652173913043478260870",
      "contrast": "-0.5086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/NO2/+1",
      "start_pst": "2025-09-12T01:00:00",
      "end_pst": "2025-09-13T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "10.8357353",
      "contrast": "4.8642647",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/NO2/+1",
      "start_pst": "2025-09-12T01:00:00",
      "end_pst": "2025-09-13T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.7",
      "town": "10.8",
      "contrast": "4.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-12/NO2/+1",
      "start_pst": "2025-09-12T01:00:00",
      "end_pst": "2025-09-13T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/12/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.8232923791666666666666666666666666666666666666667",
      "contrast": "2.0767076208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/PM25/-1",
      "start_pst": "2025-09-12T23:00:00",
      "end_pst": "2025-09-13T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.8291666666666666666666666666666666666666666666667",
      "contrast": "2.0708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/PM25/-1",
      "start_pst": "2025-09-12T23:00:00",
      "end_pst": "2025-09-13T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "6.4985716304347826086956521739130434782608695652174",
      "contrast": "1.1014283695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/NO2/-1",
      "start_pst": "2025-09-12T23:00:00",
      "end_pst": "2025-09-13T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "6.4956521739130434782608695652173913043478260869565",
      "contrast": "1.1043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/NO2/-1",
      "start_pst": "2025-09-12T23:00:00",
      "end_pst": "2025-09-13T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.3",
      "town": "10.1605892",
      "contrast": "7.1394108",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/NO2/-1",
      "start_pst": "2025-09-12T23:00:00",
      "end_pst": "2025-09-13T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.3",
      "town": "10.2",
      "contrast": "7.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/NO2/-1",
      "start_pst": "2025-09-12T23:00:00",
      "end_pst": "2025-09-13T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.869461125",
      "contrast": "2.030538875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/PM25/+0",
      "start_pst": "2025-09-13T00:00:00",
      "end_pst": "2025-09-14T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.875",
      "contrast": "2.025",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/PM25/+0",
      "start_pst": "2025-09-13T00:00:00",
      "end_pst": "2025-09-14T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "6.2926250608695652173913043478260869565217391304348",
      "contrast": "1.3073749391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/NO2/+0",
      "start_pst": "2025-09-13T00:00:00",
      "end_pst": "2025-09-14T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "6.2869565217391304347826086956521739130434782608696",
      "contrast": "1.3130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/NO2/+0",
      "start_pst": "2025-09-13T00:00:00",
      "end_pst": "2025-09-14T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.3",
      "town": "9.0962639",
      "contrast": "8.2037361",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/NO2/+0",
      "start_pst": "2025-09-13T00:00:00",
      "end_pst": "2025-09-14T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.3",
      "town": "9.1",
      "contrast": "8.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/NO2/+0",
      "start_pst": "2025-09-13T00:00:00",
      "end_pst": "2025-09-14T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.9327678375",
      "contrast": "1.9672321625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/PM25/+1",
      "start_pst": "2025-09-13T01:00:00",
      "end_pst": "2025-09-14T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.9416666666666666666666666666666666666666666666667",
      "contrast": "1.9583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/PM25/+1",
      "start_pst": "2025-09-13T01:00:00",
      "end_pst": "2025-09-14T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "6.1412776304347826086956521739130434782608695652174",
      "contrast": "1.4587223695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/NO2/+1",
      "start_pst": "2025-09-13T01:00:00",
      "end_pst": "2025-09-14T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "6.1391304347826086956521739130434782608695652173913",
      "contrast": "1.4608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/NO2/+1",
      "start_pst": "2025-09-13T01:00:00",
      "end_pst": "2025-09-14T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.3",
      "town": "9.0962639",
      "contrast": "8.2037361",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/NO2/+1",
      "start_pst": "2025-09-13T01:00:00",
      "end_pst": "2025-09-14T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.3",
      "town": "9.1",
      "contrast": "8.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-13/NO2/+1",
      "start_pst": "2025-09-13T01:00:00",
      "end_pst": "2025-09-14T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/13/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.6411508416666666666666666666666666666666666666667",
      "contrast": "5.8588491583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/PM25/-1",
      "start_pst": "2025-09-13T23:00:00",
      "end_pst": "2025-09-14T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.6458333333333333333333333333333333333333333333333",
      "contrast": "5.8541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/PM25/-1",
      "start_pst": "2025-09-13T23:00:00",
      "end_pst": "2025-09-14T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "5.3624563782608695652173913043478260869565217391304",
      "contrast": "4.8375436217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/NO2/-1",
      "start_pst": "2025-09-13T23:00:00",
      "end_pst": "2025-09-14T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "5.3565217391304347826086956521739130434782608695652",
      "contrast": "4.8434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/NO2/-1",
      "start_pst": "2025-09-13T23:00:00",
      "end_pst": "2025-09-14T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "8.843832",
      "contrast": "13.256168",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/NO2/-1",
      "start_pst": "2025-09-13T23:00:00",
      "end_pst": "2025-09-14T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "8.8",
      "contrast": "13.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/NO2/-1",
      "start_pst": "2025-09-13T23:00:00",
      "end_pst": "2025-09-14T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.4256322166666666666666666666666666666666666666667",
      "contrast": "6.0743677833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/PM25/+0",
      "start_pst": "2025-09-14T00:00:00",
      "end_pst": "2025-09-15T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.4333333333333333333333333333333333333333333333333",
      "contrast": "6.0666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/PM25/+0",
      "start_pst": "2025-09-14T00:00:00",
      "end_pst": "2025-09-15T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "5.2716320217391304347826086956521739130434782608696",
      "contrast": "4.9283679782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/NO2/+0",
      "start_pst": "2025-09-14T00:00:00",
      "end_pst": "2025-09-15T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "5.2652173913043478260869565217391304347826086956522",
      "contrast": "4.9347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/NO2/+0",
      "start_pst": "2025-09-14T00:00:00",
      "end_pst": "2025-09-15T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "8.843832",
      "contrast": "13.256168",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/NO2/+0",
      "start_pst": "2025-09-14T00:00:00",
      "end_pst": "2025-09-15T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "8.8",
      "contrast": "13.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/NO2/+0",
      "start_pst": "2025-09-14T00:00:00",
      "end_pst": "2025-09-15T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.2068525916666666666666666666666666666666666666667",
      "contrast": "6.2931474083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/PM25/+1",
      "start_pst": "2025-09-14T01:00:00",
      "end_pst": "2025-09-15T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.2125",
      "contrast": "6.2875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/PM25/+1",
      "start_pst": "2025-09-14T01:00:00",
      "end_pst": "2025-09-15T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "5.2209677652173913043478260869565217391304347826087",
      "contrast": "4.9790322347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/NO2/+1",
      "start_pst": "2025-09-14T01:00:00",
      "end_pst": "2025-09-15T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "5.2130434782608695652173913043478260869565217391304",
      "contrast": "4.9869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/NO2/+1",
      "start_pst": "2025-09-14T01:00:00",
      "end_pst": "2025-09-15T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "8.843832",
      "contrast": "13.256168",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/NO2/+1",
      "start_pst": "2025-09-14T01:00:00",
      "end_pst": "2025-09-15T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "8.8",
      "contrast": "13.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-14/NO2/+1",
      "start_pst": "2025-09-14T01:00:00",
      "end_pst": "2025-09-15T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/14/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "5.782325725",
      "contrast": "2.517674275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/PM25/-1",
      "start_pst": "2025-09-14T23:00:00",
      "end_pst": "2025-09-15T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "5.7875",
      "contrast": "2.5125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/PM25/-1",
      "start_pst": "2025-09-14T23:00:00",
      "end_pst": "2025-09-15T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.1566801217391304347826086956521739130434782608696",
      "contrast": "3.8433198782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/NO2/-1",
      "start_pst": "2025-09-14T23:00:00",
      "end_pst": "2025-09-15T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.1521739130434782608695652173913043478260869565217",
      "contrast": "3.8478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/NO2/-1",
      "start_pst": "2025-09-14T23:00:00",
      "end_pst": "2025-09-15T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "7.1386781",
      "contrast": "8.3613219",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/NO2/-1",
      "start_pst": "2025-09-14T23:00:00",
      "end_pst": "2025-09-15T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "7.1",
      "contrast": "8.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/NO2/-1",
      "start_pst": "2025-09-14T23:00:00",
      "end_pst": "2025-09-15T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "5.8039896",
      "contrast": "2.4960104",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/PM25/+0",
      "start_pst": "2025-09-15T00:00:00",
      "end_pst": "2025-09-16T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "5.8083333333333333333333333333333333333333333333333",
      "contrast": "2.4916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/PM25/+0",
      "start_pst": "2025-09-15T00:00:00",
      "end_pst": "2025-09-16T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.1161944304347826086956521739130434782608695652174",
      "contrast": "3.8838055695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/NO2/+0",
      "start_pst": "2025-09-15T00:00:00",
      "end_pst": "2025-09-16T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.1130434782608695652173913043478260869565217391304",
      "contrast": "3.8869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/NO2/+0",
      "start_pst": "2025-09-15T00:00:00",
      "end_pst": "2025-09-16T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "7.1386781",
      "contrast": "8.3613219",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/NO2/+0",
      "start_pst": "2025-09-15T00:00:00",
      "end_pst": "2025-09-16T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "7.1",
      "contrast": "8.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/NO2/+0",
      "start_pst": "2025-09-15T00:00:00",
      "end_pst": "2025-09-16T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "5.8320673916666666666666666666666666666666666666667",
      "contrast": "2.4679326083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/PM25/+1",
      "start_pst": "2025-09-15T01:00:00",
      "end_pst": "2025-09-16T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.3",
      "town": "5.8375",
      "contrast": "2.4625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/PM25/+1",
      "start_pst": "2025-09-15T01:00:00",
      "end_pst": "2025-09-16T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "3.9860467391304347826086956521739130434782608695652",
      "contrast": "4.0139532608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/NO2/+1",
      "start_pst": "2025-09-15T01:00:00",
      "end_pst": "2025-09-16T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "3.9826086956521739130434782608695652173913043478261",
      "contrast": "4.0173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/NO2/+1",
      "start_pst": "2025-09-15T01:00:00",
      "end_pst": "2025-09-16T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "7.1386781",
      "contrast": "8.3613219",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/NO2/+1",
      "start_pst": "2025-09-15T01:00:00",
      "end_pst": "2025-09-16T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "7.1",
      "contrast": "8.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-15/NO2/+1",
      "start_pst": "2025-09-15T01:00:00",
      "end_pst": "2025-09-16T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/15/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "7.5768015916666666666666666666666666666666666666667",
      "contrast": "1.5231984083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/PM25/-1",
      "start_pst": "2025-09-15T23:00:00",
      "end_pst": "2025-09-16T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "7.5791666666666666666666666666666666666666666666667",
      "contrast": "1.5208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/PM25/-1",
      "start_pst": "2025-09-15T23:00:00",
      "end_pst": "2025-09-16T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "5.5057927565217391304347826086956521739130434782609",
      "contrast": "4.5942072434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/NO2/-1",
      "start_pst": "2025-09-15T23:00:00",
      "end_pst": "2025-09-16T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "5.5043478260869565217391304347826086956521739130435",
      "contrast": "4.5956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/NO2/-1",
      "start_pst": "2025-09-15T23:00:00",
      "end_pst": "2025-09-16T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "16.6833477",
      "contrast": "5.2166523",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/NO2/-1",
      "start_pst": "2025-09-15T23:00:00",
      "end_pst": "2025-09-16T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "16.7",
      "contrast": "5.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/NO2/-1",
      "start_pst": "2025-09-15T23:00:00",
      "end_pst": "2025-09-16T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "7.6755848458333333333333333333333333333333333333333",
      "contrast": "1.4244151541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/PM25/+0",
      "start_pst": "2025-09-16T00:00:00",
      "end_pst": "2025-09-17T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "7.675",
      "contrast": "1.425",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/PM25/+0",
      "start_pst": "2025-09-16T00:00:00",
      "end_pst": "2025-09-17T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "5.6818698956521739130434782608695652173913043478261",
      "contrast": "4.4181301043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/NO2/+0",
      "start_pst": "2025-09-16T00:00:00",
      "end_pst": "2025-09-17T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "5.6826086956521739130434782608695652173913043478261",
      "contrast": "4.4173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/NO2/+0",
      "start_pst": "2025-09-16T00:00:00",
      "end_pst": "2025-09-17T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "16.6833477",
      "contrast": "5.2166523",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/NO2/+0",
      "start_pst": "2025-09-16T00:00:00",
      "end_pst": "2025-09-17T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "16.7",
      "contrast": "5.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/NO2/+0",
      "start_pst": "2025-09-16T00:00:00",
      "end_pst": "2025-09-17T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "7.7883566458333333333333333333333333333333333333333",
      "contrast": "1.3116433541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/PM25/+1",
      "start_pst": "2025-09-16T01:00:00",
      "end_pst": "2025-09-17T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "7.7875",
      "contrast": "1.3125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/PM25/+1",
      "start_pst": "2025-09-16T01:00:00",
      "end_pst": "2025-09-17T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "5.8827469869565217391304347826086956521739130434783",
      "contrast": "4.2172530130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/NO2/+1",
      "start_pst": "2025-09-16T01:00:00",
      "end_pst": "2025-09-17T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.1",
      "town": "5.8826086956521739130434782608695652173913043478261",
      "contrast": "4.2173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/NO2/+1",
      "start_pst": "2025-09-16T01:00:00",
      "end_pst": "2025-09-17T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "16.6833477",
      "contrast": "5.2166523",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/NO2/+1",
      "start_pst": "2025-09-16T01:00:00",
      "end_pst": "2025-09-17T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "16.7",
      "contrast": "5.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-16/NO2/+1",
      "start_pst": "2025-09-16T01:00:00",
      "end_pst": "2025-09-17T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/16/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "8.6538424208333333333333333333333333333333333333333",
      "contrast": "5.8461575791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/PM25/-1",
      "start_pst": "2025-09-16T23:00:00",
      "end_pst": "2025-09-17T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "8.6583333333333333333333333333333333333333333333333",
      "contrast": "5.8416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/PM25/-1",
      "start_pst": "2025-09-16T23:00:00",
      "end_pst": "2025-09-17T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.8567864173913043478260869565217391304347826086957",
      "contrast": "7.3432135826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/NO2/-1",
      "start_pst": "2025-09-16T23:00:00",
      "end_pst": "2025-09-17T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.8608695652173913043478260869565217391304347826087",
      "contrast": "7.3391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/NO2/-1",
      "start_pst": "2025-09-16T23:00:00",
      "end_pst": "2025-09-17T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.0",
      "town": "11.8984814",
      "contrast": "11.1015186",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/NO2/-1",
      "start_pst": "2025-09-16T23:00:00",
      "end_pst": "2025-09-17T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.0",
      "town": "11.9",
      "contrast": "11.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/NO2/-1",
      "start_pst": "2025-09-16T23:00:00",
      "end_pst": "2025-09-17T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "8.6231523291666666666666666666666666666666666666667",
      "contrast": "5.8768476708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/PM25/+0",
      "start_pst": "2025-09-17T00:00:00",
      "end_pst": "2025-09-18T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "8.6291666666666666666666666666666666666666666666667",
      "contrast": "5.8708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/PM25/+0",
      "start_pst": "2025-09-17T00:00:00",
      "end_pst": "2025-09-18T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.9161240130434782608695652173913043478260869565217",
      "contrast": "7.2838759869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/NO2/+0",
      "start_pst": "2025-09-17T00:00:00",
      "end_pst": "2025-09-18T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.9173913043478260869565217391304347826086956521739",
      "contrast": "7.2826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/NO2/+0",
      "start_pst": "2025-09-17T00:00:00",
      "end_pst": "2025-09-18T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.0",
      "town": "11.8984814",
      "contrast": "11.1015186",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/NO2/+0",
      "start_pst": "2025-09-17T00:00:00",
      "end_pst": "2025-09-18T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.0",
      "town": "11.9",
      "contrast": "11.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/NO2/+0",
      "start_pst": "2025-09-17T00:00:00",
      "end_pst": "2025-09-18T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "8.5850388125",
      "contrast": "5.9149611875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/PM25/+1",
      "start_pst": "2025-09-17T01:00:00",
      "end_pst": "2025-09-18T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "8.5916666666666666666666666666666666666666666666667",
      "contrast": "5.9083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/PM25/+1",
      "start_pst": "2025-09-17T01:00:00",
      "end_pst": "2025-09-18T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.9422706521739130434782608695652173913043478260870",
      "contrast": "7.2577293478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/NO2/+1",
      "start_pst": "2025-09-17T01:00:00",
      "end_pst": "2025-09-18T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.9434782608695652173913043478260869565217391304348",
      "contrast": "7.2565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/NO2/+1",
      "start_pst": "2025-09-17T01:00:00",
      "end_pst": "2025-09-18T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.0",
      "town": "11.8984814",
      "contrast": "11.1015186",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/NO2/+1",
      "start_pst": "2025-09-17T01:00:00",
      "end_pst": "2025-09-18T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.0",
      "town": "11.9",
      "contrast": "11.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-17/NO2/+1",
      "start_pst": "2025-09-17T01:00:00",
      "end_pst": "2025-09-18T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/17/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.8199173125",
      "contrast": "1.6800826875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/PM25/-1",
      "start_pst": "2025-09-17T23:00:00",
      "end_pst": "2025-09-18T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.8208333333333333333333333333333333333333333333333",
      "contrast": "1.6791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/PM25/-1",
      "start_pst": "2025-09-17T23:00:00",
      "end_pst": "2025-09-18T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "6.2353565391304347826086956521739130434782608695652",
      "contrast": "2.8646434608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/NO2/-1",
      "start_pst": "2025-09-17T23:00:00",
      "end_pst": "2025-09-18T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "6.2347826086956521739130434782608695652173913043478",
      "contrast": "2.8652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/NO2/-1",
      "start_pst": "2025-09-17T23:00:00",
      "end_pst": "2025-09-18T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "12.9524393",
      "contrast": "4.0475607",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/NO2/-1",
      "start_pst": "2025-09-17T23:00:00",
      "end_pst": "2025-09-18T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "13",
      "contrast": "4.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/NO2/-1",
      "start_pst": "2025-09-17T23:00:00",
      "end_pst": "2025-09-18T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.8254316541666666666666666666666666666666666666667",
      "contrast": "1.6745683458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/PM25/+0",
      "start_pst": "2025-09-18T00:00:00",
      "end_pst": "2025-09-19T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.825",
      "contrast": "1.675",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/PM25/+0",
      "start_pst": "2025-09-18T00:00:00",
      "end_pst": "2025-09-19T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "6.1834305043478260869565217391304347826086956521739",
      "contrast": "2.9165694956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/NO2/+0",
      "start_pst": "2025-09-18T00:00:00",
      "end_pst": "2025-09-19T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "6.1826086956521739130434782608695652173913043478261",
      "contrast": "2.9173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/NO2/+0",
      "start_pst": "2025-09-18T00:00:00",
      "end_pst": "2025-09-19T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "12.9524393",
      "contrast": "4.0475607",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/NO2/+0",
      "start_pst": "2025-09-18T00:00:00",
      "end_pst": "2025-09-19T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "13",
      "contrast": "4.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/NO2/+0",
      "start_pst": "2025-09-18T00:00:00",
      "end_pst": "2025-09-19T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.8240755291666666666666666666666666666666666666667",
      "contrast": "1.6759244708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/PM25/+1",
      "start_pst": "2025-09-18T01:00:00",
      "end_pst": "2025-09-19T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.8208333333333333333333333333333333333333333333333",
      "contrast": "1.6791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/PM25/+1",
      "start_pst": "2025-09-18T01:00:00",
      "end_pst": "2025-09-19T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "6.1528134739130434782608695652173913043478260869565",
      "contrast": "2.9471865260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/NO2/+1",
      "start_pst": "2025-09-18T01:00:00",
      "end_pst": "2025-09-19T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "6.1521739130434782608695652173913043478260869565217",
      "contrast": "2.9478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/NO2/+1",
      "start_pst": "2025-09-18T01:00:00",
      "end_pst": "2025-09-19T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "12.9524393",
      "contrast": "4.0475607",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/NO2/+1",
      "start_pst": "2025-09-18T01:00:00",
      "end_pst": "2025-09-19T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.0",
      "town": "13",
      "contrast": "4.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-18/NO2/+1",
      "start_pst": "2025-09-18T01:00:00",
      "end_pst": "2025-09-19T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/18/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.2699727625",
      "contrast": "2.6300272375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/PM25/-1",
      "start_pst": "2025-09-18T23:00:00",
      "end_pst": "2025-09-19T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.2666666666666666666666666666666666666666666666667",
      "contrast": "2.6333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/PM25/-1",
      "start_pst": "2025-09-18T23:00:00",
      "end_pst": "2025-09-19T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "8.3242259739130434782608695652173913043478260869565",
      "contrast": "2.0757740260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/NO2/-1",
      "start_pst": "2025-09-18T23:00:00",
      "end_pst": "2025-09-19T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "8.3304347826086956521739130434782608695652173913043",
      "contrast": "2.0695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/NO2/-1",
      "start_pst": "2025-09-18T23:00:00",
      "end_pst": "2025-09-19T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "18.8734035",
      "contrast": "-3.2734035",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/NO2/-1",
      "start_pst": "2025-09-18T23:00:00",
      "end_pst": "2025-09-19T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "18.9",
      "contrast": "-3.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/NO2/-1",
      "start_pst": "2025-09-18T23:00:00",
      "end_pst": "2025-09-19T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.3307697208333333333333333333333333333333333333333",
      "contrast": "2.5692302791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/PM25/+0",
      "start_pst": "2025-09-19T00:00:00",
      "end_pst": "2025-09-20T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.3291666666666666666666666666666666666666666666667",
      "contrast": "2.5708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/PM25/+0",
      "start_pst": "2025-09-19T00:00:00",
      "end_pst": "2025-09-20T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "8.3492657913043478260869565217391304347826086956522",
      "contrast": "2.0507342086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/NO2/+0",
      "start_pst": "2025-09-19T00:00:00",
      "end_pst": "2025-09-20T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "8.3565217391304347826086956521739130434782608695652",
      "contrast": "2.0434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/NO2/+0",
      "start_pst": "2025-09-19T00:00:00",
      "end_pst": "2025-09-20T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "18.8734035",
      "contrast": "-3.2734035",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/NO2/+0",
      "start_pst": "2025-09-19T00:00:00",
      "end_pst": "2025-09-20T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "18.9",
      "contrast": "-3.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/NO2/+0",
      "start_pst": "2025-09-19T00:00:00",
      "end_pst": "2025-09-20T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.4122248125",
      "contrast": "2.4877751875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/PM25/+1",
      "start_pst": "2025-09-19T01:00:00",
      "end_pst": "2025-09-20T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.4125",
      "contrast": "2.4875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/PM25/+1",
      "start_pst": "2025-09-19T01:00:00",
      "end_pst": "2025-09-20T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "8.3444957826086956521739130434782608695652173913043",
      "contrast": "2.0555042173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/NO2/+1",
      "start_pst": "2025-09-19T01:00:00",
      "end_pst": "2025-09-20T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.4",
      "town": "8.3521739130434782608695652173913043478260869565217",
      "contrast": "2.0478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/NO2/+1",
      "start_pst": "2025-09-19T01:00:00",
      "end_pst": "2025-09-20T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "18.8734035",
      "contrast": "-3.2734035",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/NO2/+1",
      "start_pst": "2025-09-19T01:00:00",
      "end_pst": "2025-09-20T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "18.9",
      "contrast": "-3.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-19/NO2/+1",
      "start_pst": "2025-09-19T01:00:00",
      "end_pst": "2025-09-20T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/19/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "9.3621816958333333333333333333333333333333333333333",
      "contrast": "2.7378183041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/PM25/-1",
      "start_pst": "2025-09-19T23:00:00",
      "end_pst": "2025-09-20T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "9.3541666666666666666666666666666666666666666666667",
      "contrast": "2.7458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/PM25/-1",
      "start_pst": "2025-09-19T23:00:00",
      "end_pst": "2025-09-20T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.4380828434782608695652173913043478260869565217391",
      "contrast": "4.8619171565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/NO2/-1",
      "start_pst": "2025-09-19T23:00:00",
      "end_pst": "2025-09-20T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.4391304347826086956521739130434782608695652173913",
      "contrast": "4.8608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/NO2/-1",
      "start_pst": "2025-09-19T23:00:00",
      "end_pst": "2025-09-20T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.7",
      "town": "12.9085598",
      "contrast": "15.7914402",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/NO2/-1",
      "start_pst": "2025-09-19T23:00:00",
      "end_pst": "2025-09-20T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.7",
      "town": "12.9",
      "contrast": "15.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/NO2/-1",
      "start_pst": "2025-09-19T23:00:00",
      "end_pst": "2025-09-20T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "9.438946775",
      "contrast": "2.661053225",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/PM25/+0",
      "start_pst": "2025-09-20T00:00:00",
      "end_pst": "2025-09-21T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "9.4291666666666666666666666666666666666666666666667",
      "contrast": "2.6708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/PM25/+0",
      "start_pst": "2025-09-20T00:00:00",
      "end_pst": "2025-09-21T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.4580832",
      "contrast": "4.8419168",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/NO2/+0",
      "start_pst": "2025-09-20T00:00:00",
      "end_pst": "2025-09-21T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.4608695652173913043478260869565217391304347826087",
      "contrast": "4.8391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/NO2/+0",
      "start_pst": "2025-09-20T00:00:00",
      "end_pst": "2025-09-21T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.7",
      "town": "12.9085598",
      "contrast": "15.7914402",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/NO2/+0",
      "start_pst": "2025-09-20T00:00:00",
      "end_pst": "2025-09-21T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.7",
      "town": "12.9",
      "contrast": "15.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/NO2/+0",
      "start_pst": "2025-09-20T00:00:00",
      "end_pst": "2025-09-21T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "9.5000868166666666666666666666666666666666666666667",
      "contrast": "2.5999131833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/PM25/+1",
      "start_pst": "2025-09-20T01:00:00",
      "end_pst": "2025-09-21T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "9.4916666666666666666666666666666666666666666666667",
      "contrast": "2.6083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/PM25/+1",
      "start_pst": "2025-09-20T01:00:00",
      "end_pst": "2025-09-21T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.5557676869565217391304347826086956521739130434783",
      "contrast": "4.7442323130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/NO2/+1",
      "start_pst": "2025-09-20T01:00:00",
      "end_pst": "2025-09-21T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.5608695652173913043478260869565217391304347826087",
      "contrast": "4.7391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/NO2/+1",
      "start_pst": "2025-09-20T01:00:00",
      "end_pst": "2025-09-21T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.7",
      "town": "12.9085598",
      "contrast": "15.7914402",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/NO2/+1",
      "start_pst": "2025-09-20T01:00:00",
      "end_pst": "2025-09-21T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.7",
      "town": "12.9",
      "contrast": "15.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-20/NO2/+1",
      "start_pst": "2025-09-20T01:00:00",
      "end_pst": "2025-09-21T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/20/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.9866785708333333333333333333333333333333333333333",
      "contrast": "2.0133214291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/PM25/-1",
      "start_pst": "2025-09-20T23:00:00",
      "end_pst": "2025-09-21T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.9833333333333333333333333333333333333333333333333",
      "contrast": "2.0166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/PM25/-1",
      "start_pst": "2025-09-20T23:00:00",
      "end_pst": "2025-09-21T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.5684097173913043478260869565217391304347826086957",
      "contrast": "3.3315902826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/NO2/-1",
      "start_pst": "2025-09-20T23:00:00",
      "end_pst": "2025-09-21T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.5782608695652173913043478260869565217391304347826",
      "contrast": "3.3217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/NO2/-1",
      "start_pst": "2025-09-20T23:00:00",
      "end_pst": "2025-09-21T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "9.7612658",
      "contrast": "7.3387342",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/NO2/-1",
      "start_pst": "2025-09-20T23:00:00",
      "end_pst": "2025-09-21T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "9.8",
      "contrast": "7.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/NO2/-1",
      "start_pst": "2025-09-20T23:00:00",
      "end_pst": "2025-09-21T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.865847775",
      "contrast": "2.134152225",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/PM25/+0",
      "start_pst": "2025-09-21T00:00:00",
      "end_pst": "2025-09-22T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.8625",
      "contrast": "2.1375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/PM25/+0",
      "start_pst": "2025-09-21T00:00:00",
      "end_pst": "2025-09-22T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.4171630652173913043478260869565217391304347826087",
      "contrast": "3.4828369347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/NO2/+0",
      "start_pst": "2025-09-21T00:00:00",
      "end_pst": "2025-09-22T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.4260869565217391304347826086956521739130434782609",
      "contrast": "3.4739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/NO2/+0",
      "start_pst": "2025-09-21T00:00:00",
      "end_pst": "2025-09-22T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "9.7612658",
      "contrast": "7.3387342",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/NO2/+0",
      "start_pst": "2025-09-21T00:00:00",
      "end_pst": "2025-09-22T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "9.8",
      "contrast": "7.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/NO2/+0",
      "start_pst": "2025-09-21T00:00:00",
      "end_pst": "2025-09-22T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.7136759833333333333333333333333333333333333333333",
      "contrast": "2.2863240166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/PM25/+1",
      "start_pst": "2025-09-21T01:00:00",
      "end_pst": "2025-09-22T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "4.7083333333333333333333333333333333333333333333333",
      "contrast": "2.2916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/PM25/+1",
      "start_pst": "2025-09-21T01:00:00",
      "end_pst": "2025-09-22T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.2200057130434782608695652173913043478260869565217",
      "contrast": "3.6799942869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/NO2/+1",
      "start_pst": "2025-09-21T01:00:00",
      "end_pst": "2025-09-22T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.2260869565217391304347826086956521739130434782609",
      "contrast": "3.6739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/NO2/+1",
      "start_pst": "2025-09-21T01:00:00",
      "end_pst": "2025-09-22T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "9.7612658",
      "contrast": "7.3387342",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/NO2/+1",
      "start_pst": "2025-09-21T01:00:00",
      "end_pst": "2025-09-22T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "9.8",
      "contrast": "7.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-21/NO2/+1",
      "start_pst": "2025-09-21T01:00:00",
      "end_pst": "2025-09-22T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/21/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "6.7076461166666666666666666666666666666666666666667",
      "contrast": "1.9923538833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/PM25/-1",
      "start_pst": "2025-09-21T23:00:00",
      "end_pst": "2025-09-22T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "6.7083333333333333333333333333333333333333333333333",
      "contrast": "1.9916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/PM25/-1",
      "start_pst": "2025-09-21T23:00:00",
      "end_pst": "2025-09-22T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.3742249652173913043478260869565217391304347826087",
      "contrast": "3.2257750347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/NO2/-1",
      "start_pst": "2025-09-21T23:00:00",
      "end_pst": "2025-09-22T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.3695652173913043478260869565217391304347826086957",
      "contrast": "3.2304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/NO2/-1",
      "start_pst": "2025-09-21T23:00:00",
      "end_pst": "2025-09-22T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "9.7463579",
      "contrast": "4.5536421",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/NO2/-1",
      "start_pst": "2025-09-21T23:00:00",
      "end_pst": "2025-09-22T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "9.7",
      "contrast": "4.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/NO2/-1",
      "start_pst": "2025-09-21T23:00:00",
      "end_pst": "2025-09-22T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "6.6935975791666666666666666666666666666666666666667",
      "contrast": "2.0064024208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/PM25/+0",
      "start_pst": "2025-09-22T00:00:00",
      "end_pst": "2025-09-23T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "6.6958333333333333333333333333333333333333333333333",
      "contrast": "2.0041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/PM25/+0",
      "start_pst": "2025-09-22T00:00:00",
      "end_pst": "2025-09-23T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.4085265782608695652173913043478260869565217391304",
      "contrast": "3.1914734217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/NO2/+0",
      "start_pst": "2025-09-22T00:00:00",
      "end_pst": "2025-09-23T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.4043478260869565217391304347826086956521739130435",
      "contrast": "3.1956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/NO2/+0",
      "start_pst": "2025-09-22T00:00:00",
      "end_pst": "2025-09-23T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "9.7463579",
      "contrast": "4.5536421",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/NO2/+0",
      "start_pst": "2025-09-22T00:00:00",
      "end_pst": "2025-09-23T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "9.7",
      "contrast": "4.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/NO2/+0",
      "start_pst": "2025-09-22T00:00:00",
      "end_pst": "2025-09-23T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "6.6835793291666666666666666666666666666666666666667",
      "contrast": "2.0164206708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/PM25/+1",
      "start_pst": "2025-09-22T01:00:00",
      "end_pst": "2025-09-23T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "6.6875",
      "contrast": "2.0125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/PM25/+1",
      "start_pst": "2025-09-22T01:00:00",
      "end_pst": "2025-09-23T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.4658874478260869565217391304347826086956521739130",
      "contrast": "3.1341125521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/NO2/+1",
      "start_pst": "2025-09-22T01:00:00",
      "end_pst": "2025-09-23T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "5.4608695652173913043478260869565217391304347826087",
      "contrast": "3.1391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/NO2/+1",
      "start_pst": "2025-09-22T01:00:00",
      "end_pst": "2025-09-23T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "9.7463579",
      "contrast": "4.5536421",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/NO2/+1",
      "start_pst": "2025-09-22T01:00:00",
      "end_pst": "2025-09-23T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "9.7",
      "contrast": "4.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-22/NO2/+1",
      "start_pst": "2025-09-22T01:00:00",
      "end_pst": "2025-09-23T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/22/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "6.9538797666666666666666666666666666666666666666667",
      "contrast": "2.3461202333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/PM25/-1",
      "start_pst": "2025-09-22T23:00:00",
      "end_pst": "2025-09-23T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "6.9541666666666666666666666666666666666666666666667",
      "contrast": "2.3458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/PM25/-1",
      "start_pst": "2025-09-22T23:00:00",
      "end_pst": "2025-09-23T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "6.6295654739130434782608695652173913043478260869565",
      "contrast": "3.1704345260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/NO2/-1",
      "start_pst": "2025-09-22T23:00:00",
      "end_pst": "2025-09-23T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "6.6260869565217391304347826086956521739130434782609",
      "contrast": "3.1739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/NO2/-1",
      "start_pst": "2025-09-22T23:00:00",
      "end_pst": "2025-09-23T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "17.3282948",
      "contrast": "-1.3282948",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/NO2/-1",
      "start_pst": "2025-09-22T23:00:00",
      "end_pst": "2025-09-23T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "17.3",
      "contrast": "-1.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/NO2/-1",
      "start_pst": "2025-09-22T23:00:00",
      "end_pst": "2025-09-23T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "7.3153032",
      "contrast": "1.9846968",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/PM25/+0",
      "start_pst": "2025-09-23T00:00:00",
      "end_pst": "2025-09-24T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "7.3166666666666666666666666666666666666666666666667",
      "contrast": "1.9833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/PM25/+0",
      "start_pst": "2025-09-23T00:00:00",
      "end_pst": "2025-09-24T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "6.6756794217391304347826086956521739130434782608696",
      "contrast": "3.1243205782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/NO2/+0",
      "start_pst": "2025-09-23T00:00:00",
      "end_pst": "2025-09-24T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "6.6695652173913043478260869565217391304347826086957",
      "contrast": "3.1304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/NO2/+0",
      "start_pst": "2025-09-23T00:00:00",
      "end_pst": "2025-09-24T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "17.3282948",
      "contrast": "-1.3282948",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/NO2/+0",
      "start_pst": "2025-09-23T00:00:00",
      "end_pst": "2025-09-24T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "17.3",
      "contrast": "-1.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/NO2/+0",
      "start_pst": "2025-09-23T00:00:00",
      "end_pst": "2025-09-24T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "7.5890431333333333333333333333333333333333333333333",
      "contrast": "1.7109568666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/PM25/+1",
      "start_pst": "2025-09-23T01:00:00",
      "end_pst": "2025-09-24T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "7.5875",
      "contrast": "1.7125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/PM25/+1",
      "start_pst": "2025-09-23T01:00:00",
      "end_pst": "2025-09-24T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "6.6895146826086956521739130434782608695652173913043",
      "contrast": "3.1104853173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/NO2/+1",
      "start_pst": "2025-09-23T01:00:00",
      "end_pst": "2025-09-24T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.8",
      "town": "6.6869565217391304347826086956521739130434782608696",
      "contrast": "3.1130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/NO2/+1",
      "start_pst": "2025-09-23T01:00:00",
      "end_pst": "2025-09-24T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "17.3282948",
      "contrast": "-1.3282948",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/NO2/+1",
      "start_pst": "2025-09-23T01:00:00",
      "end_pst": "2025-09-24T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.0",
      "town": "17.3",
      "contrast": "-1.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-23/NO2/+1",
      "start_pst": "2025-09-23T01:00:00",
      "end_pst": "2025-09-24T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/23/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "7.6119666541666666666666666666666666666666666666667",
      "contrast": "1.9880333458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/PM25/-1",
      "start_pst": "2025-09-23T23:00:00",
      "end_pst": "2025-09-24T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "7.6083333333333333333333333333333333333333333333333",
      "contrast": "1.9916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/PM25/-1",
      "start_pst": "2025-09-23T23:00:00",
      "end_pst": "2025-09-24T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.9794889608695652173913043478260869565217391304348",
      "contrast": "3.3205110391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/NO2/-1",
      "start_pst": "2025-09-23T23:00:00",
      "end_pst": "2025-09-24T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.9826086956521739130434782608695652173913043478261",
      "contrast": "3.3173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/NO2/-1",
      "start_pst": "2025-09-23T23:00:00",
      "end_pst": "2025-09-24T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "10.7804098",
      "contrast": "10.2195902",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/NO2/-1",
      "start_pst": "2025-09-23T23:00:00",
      "end_pst": "2025-09-24T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "10.8",
      "contrast": "10.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/NO2/-1",
      "start_pst": "2025-09-23T23:00:00",
      "end_pst": "2025-09-24T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "7.5592326",
      "contrast": "2.0407674",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/PM25/+0",
      "start_pst": "2025-09-24T00:00:00",
      "end_pst": "2025-09-25T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "7.5541666666666666666666666666666666666666666666667",
      "contrast": "2.0458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/PM25/+0",
      "start_pst": "2025-09-24T00:00:00",
      "end_pst": "2025-09-25T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.9449411739130434782608695652173913043478260869565",
      "contrast": "3.3550588260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/NO2/+0",
      "start_pst": "2025-09-24T00:00:00",
      "end_pst": "2025-09-25T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.9478260869565217391304347826086956521739130434783",
      "contrast": "3.3521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/NO2/+0",
      "start_pst": "2025-09-24T00:00:00",
      "end_pst": "2025-09-25T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "10.7804098",
      "contrast": "10.2195902",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/NO2/+0",
      "start_pst": "2025-09-24T00:00:00",
      "end_pst": "2025-09-25T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "10.8",
      "contrast": "10.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/NO2/+0",
      "start_pst": "2025-09-24T00:00:00",
      "end_pst": "2025-09-25T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "7.6799299416666666666666666666666666666666666666667",
      "contrast": "1.9200700583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/PM25/+1",
      "start_pst": "2025-09-24T01:00:00",
      "end_pst": "2025-09-25T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "7.675",
      "contrast": "1.925",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/PM25/+1",
      "start_pst": "2025-09-24T01:00:00",
      "end_pst": "2025-09-25T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.8967094826086956521739130434782608695652173913043",
      "contrast": "3.4032905173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/NO2/+1",
      "start_pst": "2025-09-24T01:00:00",
      "end_pst": "2025-09-25T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.8956521739130434782608695652173913043478260869565",
      "contrast": "3.4043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/NO2/+1",
      "start_pst": "2025-09-24T01:00:00",
      "end_pst": "2025-09-25T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "10.7804098",
      "contrast": "10.2195902",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/NO2/+1",
      "start_pst": "2025-09-24T01:00:00",
      "end_pst": "2025-09-25T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "10.8",
      "contrast": "10.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-24/NO2/+1",
      "start_pst": "2025-09-24T01:00:00",
      "end_pst": "2025-09-25T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/24/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "7.4882764083333333333333333333333333333333333333333",
      "contrast": "1.2117235916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/PM25/-1",
      "start_pst": "2025-09-24T23:00:00",
      "end_pst": "2025-09-25T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "7.4875",
      "contrast": "1.2125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/PM25/-1",
      "start_pst": "2025-09-24T23:00:00",
      "end_pst": "2025-09-25T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.3698640695652173913043478260869565217391304347826",
      "contrast": "3.8301359304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/NO2/-1",
      "start_pst": "2025-09-24T23:00:00",
      "end_pst": "2025-09-25T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.3652173913043478260869565217391304347826086956522",
      "contrast": "3.8347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/NO2/-1",
      "start_pst": "2025-09-24T23:00:00",
      "end_pst": "2025-09-25T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "7.897511",
      "contrast": "8.702489",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/NO2/-1",
      "start_pst": "2025-09-24T23:00:00",
      "end_pst": "2025-09-25T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "7.9",
      "contrast": "8.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/NO2/-1",
      "start_pst": "2025-09-24T23:00:00",
      "end_pst": "2025-09-25T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "7.2086423291666666666666666666666666666666666666667",
      "contrast": "1.4913576708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/PM25/+0",
      "start_pst": "2025-09-25T00:00:00",
      "end_pst": "2025-09-26T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "7.2083333333333333333333333333333333333333333333333",
      "contrast": "1.4916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/PM25/+0",
      "start_pst": "2025-09-25T00:00:00",
      "end_pst": "2025-09-26T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.4387381173913043478260869565217391304347826086957",
      "contrast": "3.7612618826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/NO2/+0",
      "start_pst": "2025-09-25T00:00:00",
      "end_pst": "2025-09-26T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.4347826086956521739130434782608695652173913043478",
      "contrast": "3.7652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/NO2/+0",
      "start_pst": "2025-09-25T00:00:00",
      "end_pst": "2025-09-26T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "7.897511",
      "contrast": "8.702489",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/NO2/+0",
      "start_pst": "2025-09-25T00:00:00",
      "end_pst": "2025-09-26T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "7.9",
      "contrast": "8.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/NO2/+0",
      "start_pst": "2025-09-25T00:00:00",
      "end_pst": "2025-09-26T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "6.8486558041666666666666666666666666666666666666667",
      "contrast": "1.8513441958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/PM25/+1",
      "start_pst": "2025-09-25T01:00:00",
      "end_pst": "2025-09-26T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "6.85",
      "contrast": "1.85",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/PM25/+1",
      "start_pst": "2025-09-25T01:00:00",
      "end_pst": "2025-09-26T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.4711070347826086956521739130434782608695652173913",
      "contrast": "3.7288929652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/NO2/+1",
      "start_pst": "2025-09-25T01:00:00",
      "end_pst": "2025-09-26T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.2",
      "town": "5.4695652173913043478260869565217391304347826086957",
      "contrast": "3.7304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/NO2/+1",
      "start_pst": "2025-09-25T01:00:00",
      "end_pst": "2025-09-26T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "7.897511",
      "contrast": "8.702489",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/NO2/+1",
      "start_pst": "2025-09-25T01:00:00",
      "end_pst": "2025-09-26T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "7.9",
      "contrast": "8.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-25/NO2/+1",
      "start_pst": "2025-09-25T01:00:00",
      "end_pst": "2025-09-26T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/25/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.5253948291666666666666666666666666666666666666667",
      "contrast": "3.3746051708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/PM25/-1",
      "start_pst": "2025-09-25T23:00:00",
      "end_pst": "2025-09-26T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.5125",
      "contrast": "3.3875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/PM25/-1",
      "start_pst": "2025-09-25T23:00:00",
      "end_pst": "2025-09-26T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.5655589695652173913043478260869565217391304347826",
      "contrast": "4.7344410304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/NO2/-1",
      "start_pst": "2025-09-25T23:00:00",
      "end_pst": "2025-09-26T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.5652173913043478260869565217391304347826086956522",
      "contrast": "4.7347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/NO2/-1",
      "start_pst": "2025-09-25T23:00:00",
      "end_pst": "2025-09-26T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.4",
      "town": "10.1829863",
      "contrast": "9.2170137",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/NO2/-1",
      "start_pst": "2025-09-25T23:00:00",
      "end_pst": "2025-09-26T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.4",
      "town": "10.2",
      "contrast": "9.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/NO2/-1",
      "start_pst": "2025-09-25T23:00:00",
      "end_pst": "2025-09-26T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.3613238625",
      "contrast": "3.5386761375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/PM25/+0",
      "start_pst": "2025-09-26T00:00:00",
      "end_pst": "2025-09-27T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.35",
      "contrast": "3.55",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/PM25/+0",
      "start_pst": "2025-09-26T00:00:00",
      "end_pst": "2025-09-27T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.3627548391304347826086956521739130434782608695652",
      "contrast": "4.9372451608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/NO2/+0",
      "start_pst": "2025-09-26T00:00:00",
      "end_pst": "2025-09-27T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.3652173913043478260869565217391304347826086956522",
      "contrast": "4.9347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/NO2/+0",
      "start_pst": "2025-09-26T00:00:00",
      "end_pst": "2025-09-27T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.4",
      "town": "10.1829863",
      "contrast": "9.2170137",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/NO2/+0",
      "start_pst": "2025-09-26T00:00:00",
      "end_pst": "2025-09-27T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.4",
      "town": "10.2",
      "contrast": "9.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/NO2/+0",
      "start_pst": "2025-09-26T00:00:00",
      "end_pst": "2025-09-27T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.2097962791666666666666666666666666666666666666667",
      "contrast": "3.6902037208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/PM25/+1",
      "start_pst": "2025-09-26T01:00:00",
      "end_pst": "2025-09-27T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "4.2",
      "contrast": "3.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/PM25/+1",
      "start_pst": "2025-09-26T01:00:00",
      "end_pst": "2025-09-27T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.2948607826086956521739130434782608695652173913043",
      "contrast": "5.0051392173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/NO2/+1",
      "start_pst": "2025-09-26T01:00:00",
      "end_pst": "2025-09-27T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "6.2956521739130434782608695652173913043478260869565",
      "contrast": "5.0043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/NO2/+1",
      "start_pst": "2025-09-26T01:00:00",
      "end_pst": "2025-09-27T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.4",
      "town": "10.1829863",
      "contrast": "9.2170137",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/NO2/+1",
      "start_pst": "2025-09-26T01:00:00",
      "end_pst": "2025-09-27T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.4",
      "town": "10.2",
      "contrast": "9.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-26/NO2/+1",
      "start_pst": "2025-09-26T01:00:00",
      "end_pst": "2025-09-27T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/26/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.7264769833333333333333333333333333333333333333333",
      "contrast": "4.0735230166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/PM25/-1",
      "start_pst": "2025-09-26T23:00:00",
      "end_pst": "2025-09-27T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.7333333333333333333333333333333333333333333333333",
      "contrast": "4.0666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/PM25/-1",
      "start_pst": "2025-09-26T23:00:00",
      "end_pst": "2025-09-27T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "4.3722490434782608695652173913043478260869565217391",
      "contrast": "6.5277509565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/NO2/-1",
      "start_pst": "2025-09-26T23:00:00",
      "end_pst": "2025-09-27T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "4.3695652173913043478260869565217391304347826086957",
      "contrast": "6.5304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/NO2/-1",
      "start_pst": "2025-09-26T23:00:00",
      "end_pst": "2025-09-27T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.6",
      "town": "7.8574491",
      "contrast": "20.7425509",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/NO2/-1",
      "start_pst": "2025-09-26T23:00:00",
      "end_pst": "2025-09-27T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.6",
      "town": "7.9",
      "contrast": "20.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/NO2/-1",
      "start_pst": "2025-09-26T23:00:00",
      "end_pst": "2025-09-27T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.7693537375",
      "contrast": "4.0306462625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/PM25/+0",
      "start_pst": "2025-09-27T00:00:00",
      "end_pst": "2025-09-28T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.775",
      "contrast": "4.025",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/PM25/+0",
      "start_pst": "2025-09-27T00:00:00",
      "end_pst": "2025-09-28T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "4.3280558695652173913043478260869565217391304347826",
      "contrast": "6.5719441304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/NO2/+0",
      "start_pst": "2025-09-27T00:00:00",
      "end_pst": "2025-09-28T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "4.3217391304347826086956521739130434782608695652174",
      "contrast": "6.5782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/NO2/+0",
      "start_pst": "2025-09-27T00:00:00",
      "end_pst": "2025-09-28T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.6",
      "town": "7.8574491",
      "contrast": "20.7425509",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/NO2/+0",
      "start_pst": "2025-09-27T00:00:00",
      "end_pst": "2025-09-28T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.6",
      "town": "7.9",
      "contrast": "20.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/NO2/+0",
      "start_pst": "2025-09-27T00:00:00",
      "end_pst": "2025-09-28T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.7936985291666666666666666666666666666666666666667",
      "contrast": "4.0063014708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/PM25/+1",
      "start_pst": "2025-09-27T01:00:00",
      "end_pst": "2025-09-28T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "2.7958333333333333333333333333333333333333333333333",
      "contrast": "4.0041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/PM25/+1",
      "start_pst": "2025-09-27T01:00:00",
      "end_pst": "2025-09-28T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "4.2460130043478260869565217391304347826086956521739",
      "contrast": "6.6539869956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/NO2/+1",
      "start_pst": "2025-09-27T01:00:00",
      "end_pst": "2025-09-28T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "4.2391304347826086956521739130434782608695652173913",
      "contrast": "6.6608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/NO2/+1",
      "start_pst": "2025-09-27T01:00:00",
      "end_pst": "2025-09-28T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.6",
      "town": "7.8574491",
      "contrast": "20.7425509",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/NO2/+1",
      "start_pst": "2025-09-27T01:00:00",
      "end_pst": "2025-09-28T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.6",
      "town": "7.9",
      "contrast": "20.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-27/NO2/+1",
      "start_pst": "2025-09-27T01:00:00",
      "end_pst": "2025-09-28T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/27/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.0309291458333333333333333333333333333333333333333",
      "contrast": "2.9690708541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/PM25/-1",
      "start_pst": "2025-09-27T23:00:00",
      "end_pst": "2025-09-28T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.0333333333333333333333333333333333333333333333333",
      "contrast": "2.9666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/PM25/-1",
      "start_pst": "2025-09-27T23:00:00",
      "end_pst": "2025-09-28T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "3.4908268652173913043478260869565217391304347826087",
      "contrast": "6.0091731347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/NO2/-1",
      "start_pst": "2025-09-27T23:00:00",
      "end_pst": "2025-09-28T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "3.4869565217391304347826086956521739130434782608696",
      "contrast": "6.0130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/NO2/-1",
      "start_pst": "2025-09-27T23:00:00",
      "end_pst": "2025-09-28T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.8",
      "town": "7.770864",
      "contrast": "8.029136",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/NO2/-1",
      "start_pst": "2025-09-27T23:00:00",
      "end_pst": "2025-09-28T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.8",
      "town": "7.8",
      "contrast": "8.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/NO2/-1",
      "start_pst": "2025-09-27T23:00:00",
      "end_pst": "2025-09-28T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.0535036875",
      "contrast": "2.9464963125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/PM25/+0",
      "start_pst": "2025-09-28T00:00:00",
      "end_pst": "2025-09-29T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.0541666666666666666666666666666666666666666666667",
      "contrast": "2.9458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/PM25/+0",
      "start_pst": "2025-09-28T00:00:00",
      "end_pst": "2025-09-29T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "3.6096436478260869565217391304347826086956521739130",
      "contrast": "5.8903563521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/NO2/+0",
      "start_pst": "2025-09-28T00:00:00",
      "end_pst": "2025-09-29T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "3.6086956521739130434782608695652173913043478260870",
      "contrast": "5.8913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/NO2/+0",
      "start_pst": "2025-09-28T00:00:00",
      "end_pst": "2025-09-29T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.8",
      "town": "7.770864",
      "contrast": "8.029136",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/NO2/+0",
      "start_pst": "2025-09-28T00:00:00",
      "end_pst": "2025-09-29T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.8",
      "town": "7.8",
      "contrast": "8.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/NO2/+0",
      "start_pst": "2025-09-28T00:00:00",
      "end_pst": "2025-09-29T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.0771825166666666666666666666666666666666666666667",
      "contrast": "2.9228174833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/PM25/+1",
      "start_pst": "2025-09-28T01:00:00",
      "end_pst": "2025-09-29T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "3.0791666666666666666666666666666666666666666666667",
      "contrast": "2.9208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/PM25/+1",
      "start_pst": "2025-09-28T01:00:00",
      "end_pst": "2025-09-29T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "3.6896535608695652173913043478260869565217391304348",
      "contrast": "5.8103464391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/NO2/+1",
      "start_pst": "2025-09-28T01:00:00",
      "end_pst": "2025-09-29T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "3.6913043478260869565217391304347826086956521739130",
      "contrast": "5.8086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/NO2/+1",
      "start_pst": "2025-09-28T01:00:00",
      "end_pst": "2025-09-29T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.8",
      "town": "7.770864",
      "contrast": "8.029136",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/NO2/+1",
      "start_pst": "2025-09-28T01:00:00",
      "end_pst": "2025-09-29T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.8",
      "town": "7.8",
      "contrast": "8.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-28/NO2/+1",
      "start_pst": "2025-09-28T01:00:00",
      "end_pst": "2025-09-29T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/28/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "2.5230175625",
      "contrast": "4.7769824375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/PM25/-1",
      "start_pst": "2025-09-28T23:00:00",
      "end_pst": "2025-09-29T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "2.5208333333333333333333333333333333333333333333333",
      "contrast": "4.7791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/PM25/-1",
      "start_pst": "2025-09-28T23:00:00",
      "end_pst": "2025-09-29T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "6.5381728260869565217391304347826086956521739130435",
      "contrast": "8.5618271739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/NO2/-1",
      "start_pst": "2025-09-28T23:00:00",
      "end_pst": "2025-09-29T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "6.5391304347826086956521739130434782608695652173913",
      "contrast": "8.5608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/NO2/-1",
      "start_pst": "2025-09-28T23:00:00",
      "end_pst": "2025-09-29T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.7",
      "town": "10.9613323",
      "contrast": "11.7386677",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/NO2/-1",
      "start_pst": "2025-09-28T23:00:00",
      "end_pst": "2025-09-29T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.7",
      "town": "11",
      "contrast": "11.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/NO2/-1",
      "start_pst": "2025-09-28T23:00:00",
      "end_pst": "2025-09-29T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "2.5382505625",
      "contrast": "4.7617494375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/PM25/+0",
      "start_pst": "2025-09-29T00:00:00",
      "end_pst": "2025-09-30T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "2.5375",
      "contrast": "4.7625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/PM25/+0",
      "start_pst": "2025-09-29T00:00:00",
      "end_pst": "2025-09-30T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "6.4908835652173913043478260869565217391304347826087",
      "contrast": "8.6091164347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/NO2/+0",
      "start_pst": "2025-09-29T00:00:00",
      "end_pst": "2025-09-30T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "6.4913043478260869565217391304347826086956521739130",
      "contrast": "8.6086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/NO2/+0",
      "start_pst": "2025-09-29T00:00:00",
      "end_pst": "2025-09-30T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.7",
      "town": "10.9613323",
      "contrast": "11.7386677",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/NO2/+0",
      "start_pst": "2025-09-29T00:00:00",
      "end_pst": "2025-09-30T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.7",
      "town": "11",
      "contrast": "11.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/NO2/+0",
      "start_pst": "2025-09-29T00:00:00",
      "end_pst": "2025-09-30T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "2.6619455583333333333333333333333333333333333333333",
      "contrast": "4.6380544416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/PM25/+1",
      "start_pst": "2025-09-29T01:00:00",
      "end_pst": "2025-09-30T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "2.6625",
      "contrast": "4.6375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/PM25/+1",
      "start_pst": "2025-09-29T01:00:00",
      "end_pst": "2025-09-30T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "6.6547628181818181818181818181818181818181818181818",
      "contrast": "8.4452371818181818181818181818181818181818181818182",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/NO2/+1",
      "start_pst": "2025-09-29T01:00:00",
      "end_pst": "2025-09-30T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "6.6545454545454545454545454545454545454545454545455",
      "contrast": "8.4454545454545454545454545454545454545454545454545",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/NO2/+1",
      "start_pst": "2025-09-29T01:00:00",
      "end_pst": "2025-09-30T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.7",
      "town": "10.9613323",
      "contrast": "11.7386677",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/NO2/+1",
      "start_pst": "2025-09-29T01:00:00",
      "end_pst": "2025-09-30T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.7",
      "town": "11",
      "contrast": "11.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-29/NO2/+1",
      "start_pst": "2025-09-29T01:00:00",
      "end_pst": "2025-09-30T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/29/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.0864864791666666666666666666666666666666666666667",
      "contrast": "2.0135135208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/PM25/-1",
      "start_pst": "2025-09-29T23:00:00",
      "end_pst": "2025-09-30T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.0916666666666666666666666666666666666666666666667",
      "contrast": "2.0083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/PM25/-1",
      "start_pst": "2025-09-29T23:00:00",
      "end_pst": "2025-09-30T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "4.3832624521739130434782608695652173913043478260870",
      "contrast": "5.5167375478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/NO2/-1",
      "start_pst": "2025-09-29T23:00:00",
      "end_pst": "2025-09-30T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "4.3782608695652173913043478260869565217391304347826",
      "contrast": "5.5217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/NO2/-1",
      "start_pst": "2025-09-29T23:00:00",
      "end_pst": "2025-09-30T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "9.0140276",
      "contrast": "12.8859724",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/NO2/-1",
      "start_pst": "2025-09-29T23:00:00",
      "end_pst": "2025-09-30T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "9",
      "contrast": "12.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/NO2/-1",
      "start_pst": "2025-09-29T23:00:00",
      "end_pst": "2025-09-30T23:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.1346625208333333333333333333333333333333333333333",
      "contrast": "1.9653374791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/PM25/+0",
      "start_pst": "2025-09-30T00:00:00",
      "end_pst": "2025-10-01T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.1416666666666666666666666666666666666666666666667",
      "contrast": "1.9583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/PM25/+0",
      "start_pst": "2025-09-30T00:00:00",
      "end_pst": "2025-10-01T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "4.4559364272727272727272727272727272727272727272727",
      "contrast": "5.4440635727272727272727272727272727272727272727273",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/NO2/+0",
      "start_pst": "2025-09-30T00:00:00",
      "end_pst": "2025-10-01T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "4.45",
      "contrast": "5.45",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/NO2/+0",
      "start_pst": "2025-09-30T00:00:00",
      "end_pst": "2025-10-01T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "9.0140276",
      "contrast": "12.8859724",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/NO2/+0",
      "start_pst": "2025-09-30T00:00:00",
      "end_pst": "2025-10-01T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "9",
      "contrast": "12.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/NO2/+0",
      "start_pst": "2025-09-30T00:00:00",
      "end_pst": "2025-10-01T00:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.0383931541666666666666666666666666666666666666667",
      "contrast": "2.0616068458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/PM25/+1",
      "start_pst": "2025-09-30T01:00:00",
      "end_pst": "2025-10-01T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.0458333333333333333333333333333333333333333333333",
      "contrast": "2.0541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/PM25/+1",
      "start_pst": "2025-09-30T01:00:00",
      "end_pst": "2025-10-01T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-09-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "4.3822541913043478260869565217391304347826086956522",
      "contrast": "5.5177458086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/NO2/+1",
      "start_pst": "2025-09-30T01:00:00",
      "end_pst": "2025-10-01T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "4.3782608695652173913043478260869565217391304347826",
      "contrast": "5.5217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/NO2/+1",
      "start_pst": "2025-09-30T01:00:00",
      "end_pst": "2025-10-01T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-09-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "9.0140276",
      "contrast": "12.8859724",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/NO2/+1",
      "start_pst": "2025-09-30T01:00:00",
      "end_pst": "2025-10-01T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-09-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.9",
      "town": "9",
      "contrast": "12.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-09-30/NO2/+1",
      "start_pst": "2025-09-30T01:00:00",
      "end_pst": "2025-10-01T01:00:00",
      "onsite_source": {
        "month": "2025-09",
        "date_printed": "9/30/2025",
        "table": "B.1",
        "pdf_page": 33,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2025/11/WLNG-AQMS-Monthly-Report-2025-09-September-2025.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-09.pdf",
        "source_pdf_sha256": "4cc802da6e1dbc3af3ac1532b12d7f5ec103fa1a4762406224c5d920eab4c842",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-09/table-b1-air-native.csv",
        "source_csv_sha256": "789e2411e8d6f8fc6a0ba5209fd73ce132f17c67fd6005278d43e2eb43628403",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "3.370274575",
      "contrast": "2.829725425",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/PM25/-1",
      "start_pst": "2025-09-30T23:00:00",
      "end_pst": "2025-10-01T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "3.375",
      "contrast": "2.825",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/PM25/-1",
      "start_pst": "2025-09-30T23:00:00",
      "end_pst": "2025-10-01T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "6.1285535954545454545454545454545454545454545454545",
      "contrast": "6.9714464045454545454545454545454545454545454545455",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/NO2/-1",
      "start_pst": "2025-09-30T23:00:00",
      "end_pst": "2025-10-01T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "6.1318181818181818181818181818181818181818181818182",
      "contrast": "6.9681818181818181818181818181818181818181818181818",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/NO2/-1",
      "start_pst": "2025-09-30T23:00:00",
      "end_pst": "2025-10-01T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.9",
      "town": "12.7396393",
      "contrast": "11.1603607",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/NO2/-1",
      "start_pst": "2025-09-30T23:00:00",
      "end_pst": "2025-10-01T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.9",
      "town": "12.7",
      "contrast": "11.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/NO2/-1",
      "start_pst": "2025-09-30T23:00:00",
      "end_pst": "2025-10-01T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "3.375010025",
      "contrast": "2.824989975",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/PM25/+0",
      "start_pst": "2025-10-01T00:00:00",
      "end_pst": "2025-10-02T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "3.3791666666666666666666666666666666666666666666667",
      "contrast": "2.8208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/PM25/+0",
      "start_pst": "2025-10-01T00:00:00",
      "end_pst": "2025-10-02T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "6.2367510043478260869565217391304347826086956521739",
      "contrast": "6.8632489956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/NO2/+0",
      "start_pst": "2025-10-01T00:00:00",
      "end_pst": "2025-10-02T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "6.2391304347826086956521739130434782608695652173913",
      "contrast": "6.8608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/NO2/+0",
      "start_pst": "2025-10-01T00:00:00",
      "end_pst": "2025-10-02T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.9",
      "town": "12.7396393",
      "contrast": "11.1603607",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/NO2/+0",
      "start_pst": "2025-10-01T00:00:00",
      "end_pst": "2025-10-02T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.9",
      "town": "12.7",
      "contrast": "11.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/NO2/+0",
      "start_pst": "2025-10-01T00:00:00",
      "end_pst": "2025-10-02T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "3.3462340625",
      "contrast": "2.8537659375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/PM25/+1",
      "start_pst": "2025-10-01T01:00:00",
      "end_pst": "2025-10-02T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "3.35",
      "contrast": "2.85",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/PM25/+1",
      "start_pst": "2025-10-01T01:00:00",
      "end_pst": "2025-10-02T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "6.2923375173913043478260869565217391304347826086957",
      "contrast": "6.8076624826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/NO2/+1",
      "start_pst": "2025-10-01T01:00:00",
      "end_pst": "2025-10-02T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "6.2913043478260869565217391304347826086956521739130",
      "contrast": "6.8086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/NO2/+1",
      "start_pst": "2025-10-01T01:00:00",
      "end_pst": "2025-10-02T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.9",
      "town": "12.7396393",
      "contrast": "11.1603607",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/NO2/+1",
      "start_pst": "2025-10-01T01:00:00",
      "end_pst": "2025-10-02T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.9",
      "town": "12.7",
      "contrast": "11.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-01/NO2/+1",
      "start_pst": "2025-10-01T01:00:00",
      "end_pst": "2025-10-02T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/1/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.3385390583333333333333333333333333333333333333333",
      "contrast": "4.1614609416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/PM25/-1",
      "start_pst": "2025-10-01T23:00:00",
      "end_pst": "2025-10-02T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.3416666666666666666666666666666666666666666666667",
      "contrast": "4.1583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/PM25/-1",
      "start_pst": "2025-10-01T23:00:00",
      "end_pst": "2025-10-02T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "5.6398282391304347826086956521739130434782608695652",
      "contrast": "7.4601717608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/NO2/-1",
      "start_pst": "2025-10-01T23:00:00",
      "end_pst": "2025-10-02T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "5.6347826086956521739130434782608695652173913043478",
      "contrast": "7.4652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/NO2/-1",
      "start_pst": "2025-10-01T23:00:00",
      "end_pst": "2025-10-02T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.0",
      "town": "9.509243",
      "contrast": "18.490757",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/NO2/-1",
      "start_pst": "2025-10-01T23:00:00",
      "end_pst": "2025-10-02T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.0",
      "town": "9.5",
      "contrast": "18.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/NO2/-1",
      "start_pst": "2025-10-01T23:00:00",
      "end_pst": "2025-10-02T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.2265795583333333333333333333333333333333333333333",
      "contrast": "4.2734204416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/PM25/+0",
      "start_pst": "2025-10-02T00:00:00",
      "end_pst": "2025-10-03T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.2291666666666666666666666666666666666666666666667",
      "contrast": "4.2708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/PM25/+0",
      "start_pst": "2025-10-02T00:00:00",
      "end_pst": "2025-10-03T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "5.3274495434782608695652173913043478260869565217391",
      "contrast": "7.7725504565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/NO2/+0",
      "start_pst": "2025-10-02T00:00:00",
      "end_pst": "2025-10-03T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "5.3217391304347826086956521739130434782608695652174",
      "contrast": "7.7782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/NO2/+0",
      "start_pst": "2025-10-02T00:00:00",
      "end_pst": "2025-10-03T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.0",
      "town": "9.509243",
      "contrast": "18.490757",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/NO2/+0",
      "start_pst": "2025-10-02T00:00:00",
      "end_pst": "2025-10-03T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.0",
      "town": "9.5",
      "contrast": "18.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/NO2/+0",
      "start_pst": "2025-10-02T00:00:00",
      "end_pst": "2025-10-03T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.1858106875",
      "contrast": "4.3141893125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/PM25/+1",
      "start_pst": "2025-10-02T01:00:00",
      "end_pst": "2025-10-03T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.1875",
      "contrast": "4.3125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/PM25/+1",
      "start_pst": "2025-10-02T01:00:00",
      "end_pst": "2025-10-03T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "5.1987339869565217391304347826086956521739130434783",
      "contrast": "7.9012660130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/NO2/+1",
      "start_pst": "2025-10-02T01:00:00",
      "end_pst": "2025-10-03T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "5.1956521739130434782608695652173913043478260869565",
      "contrast": "7.9043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/NO2/+1",
      "start_pst": "2025-10-02T01:00:00",
      "end_pst": "2025-10-03T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.0",
      "town": "9.509243",
      "contrast": "18.490757",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/NO2/+1",
      "start_pst": "2025-10-02T01:00:00",
      "end_pst": "2025-10-03T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.0",
      "town": "9.5",
      "contrast": "18.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-02/NO2/+1",
      "start_pst": "2025-10-02T01:00:00",
      "end_pst": "2025-10-03T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/2/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.74252775",
      "contrast": "1.35747225",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/PM25/-1",
      "start_pst": "2025-10-02T23:00:00",
      "end_pst": "2025-10-03T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.7458333333333333333333333333333333333333333333333",
      "contrast": "1.3541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/PM25/-1",
      "start_pst": "2025-10-02T23:00:00",
      "end_pst": "2025-10-03T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.6147556",
      "contrast": "2.7852444",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/NO2/-1",
      "start_pst": "2025-10-02T23:00:00",
      "end_pst": "2025-10-03T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.6173913043478260869565217391304347826086956521739",
      "contrast": "2.7826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/NO2/-1",
      "start_pst": "2025-10-02T23:00:00",
      "end_pst": "2025-10-03T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "10.9316578",
      "contrast": "1.5683422",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/NO2/-1",
      "start_pst": "2025-10-02T23:00:00",
      "end_pst": "2025-10-03T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "10.9",
      "contrast": "1.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/NO2/-1",
      "start_pst": "2025-10-02T23:00:00",
      "end_pst": "2025-10-03T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.8727292125",
      "contrast": "1.2272707875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/PM25/+0",
      "start_pst": "2025-10-03T00:00:00",
      "end_pst": "2025-10-04T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.875",
      "contrast": "1.225",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/PM25/+0",
      "start_pst": "2025-10-03T00:00:00",
      "end_pst": "2025-10-04T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.6674019478260869565217391304347826086956521739130",
      "contrast": "2.7325980521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/NO2/+0",
      "start_pst": "2025-10-03T00:00:00",
      "end_pst": "2025-10-04T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.6695652173913043478260869565217391304347826086957",
      "contrast": "2.7304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/NO2/+0",
      "start_pst": "2025-10-03T00:00:00",
      "end_pst": "2025-10-04T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "10.9316578",
      "contrast": "1.5683422",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/NO2/+0",
      "start_pst": "2025-10-03T00:00:00",
      "end_pst": "2025-10-04T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "10.9",
      "contrast": "1.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/NO2/+0",
      "start_pst": "2025-10-03T00:00:00",
      "end_pst": "2025-10-04T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.990870925",
      "contrast": "1.109129075",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/PM25/+1",
      "start_pst": "2025-10-03T01:00:00",
      "end_pst": "2025-10-04T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.9916666666666666666666666666666666666666666666667",
      "contrast": "1.1083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/PM25/+1",
      "start_pst": "2025-10-03T01:00:00",
      "end_pst": "2025-10-04T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.7245202086956521739130434782608695652173913043478",
      "contrast": "2.6754797913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/NO2/+1",
      "start_pst": "2025-10-03T01:00:00",
      "end_pst": "2025-10-04T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.7260869565217391304347826086956521739130434782609",
      "contrast": "2.6739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/NO2/+1",
      "start_pst": "2025-10-03T01:00:00",
      "end_pst": "2025-10-04T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "10.9316578",
      "contrast": "1.5683422",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/NO2/+1",
      "start_pst": "2025-10-03T01:00:00",
      "end_pst": "2025-10-04T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "10.9",
      "contrast": "1.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-03/NO2/+1",
      "start_pst": "2025-10-03T01:00:00",
      "end_pst": "2025-10-04T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/3/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "5.2456747916666666666666666666666666666666666666667",
      "contrast": "1.2543252083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/PM25/-1",
      "start_pst": "2025-10-03T23:00:00",
      "end_pst": "2025-10-04T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "5.2416666666666666666666666666666666666666666666667",
      "contrast": "1.2583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/PM25/-1",
      "start_pst": "2025-10-03T23:00:00",
      "end_pst": "2025-10-04T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "2.2601550695652173913043478260869565217391304347826",
      "contrast": "2.2398449304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/NO2/-1",
      "start_pst": "2025-10-03T23:00:00",
      "end_pst": "2025-10-04T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "2.2478260869565217391304347826086956521739130434783",
      "contrast": "2.2521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/NO2/-1",
      "start_pst": "2025-10-03T23:00:00",
      "end_pst": "2025-10-04T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "5.6245852",
      "contrast": "4.5754148",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/NO2/-1",
      "start_pst": "2025-10-03T23:00:00",
      "end_pst": "2025-10-04T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "5.6",
      "contrast": "4.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/NO2/-1",
      "start_pst": "2025-10-03T23:00:00",
      "end_pst": "2025-10-04T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "5.3861964375",
      "contrast": "1.1138035625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/PM25/+0",
      "start_pst": "2025-10-04T00:00:00",
      "end_pst": "2025-10-05T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "5.3833333333333333333333333333333333333333333333333",
      "contrast": "1.1166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/PM25/+0",
      "start_pst": "2025-10-04T00:00:00",
      "end_pst": "2025-10-05T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "2.2695091130434782608695652173913043478260869565217",
      "contrast": "2.2304908869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/NO2/+0",
      "start_pst": "2025-10-04T00:00:00",
      "end_pst": "2025-10-05T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "2.2608695652173913043478260869565217391304347826087",
      "contrast": "2.2391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/NO2/+0",
      "start_pst": "2025-10-04T00:00:00",
      "end_pst": "2025-10-05T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "5.6245852",
      "contrast": "4.5754148",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/NO2/+0",
      "start_pst": "2025-10-04T00:00:00",
      "end_pst": "2025-10-05T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "5.6",
      "contrast": "4.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/NO2/+0",
      "start_pst": "2025-10-04T00:00:00",
      "end_pst": "2025-10-05T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "5.4963309791666666666666666666666666666666666666667",
      "contrast": "1.0036690208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/PM25/+1",
      "start_pst": "2025-10-04T01:00:00",
      "end_pst": "2025-10-05T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "5.4958333333333333333333333333333333333333333333333",
      "contrast": "1.0041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/PM25/+1",
      "start_pst": "2025-10-04T01:00:00",
      "end_pst": "2025-10-05T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "2.2627358478260869565217391304347826086956521739130",
      "contrast": "2.2372641521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/NO2/+1",
      "start_pst": "2025-10-04T01:00:00",
      "end_pst": "2025-10-05T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.5",
      "town": "2.2521739130434782608695652173913043478260869565217",
      "contrast": "2.2478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/NO2/+1",
      "start_pst": "2025-10-04T01:00:00",
      "end_pst": "2025-10-05T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "5.6245852",
      "contrast": "4.5754148",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/NO2/+1",
      "start_pst": "2025-10-04T01:00:00",
      "end_pst": "2025-10-05T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "5.6",
      "contrast": "4.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-04/NO2/+1",
      "start_pst": "2025-10-04T01:00:00",
      "end_pst": "2025-10-05T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/4/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "6.1800908583333333333333333333333333333333333333333",
      "contrast": "-0.0800908583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/PM25/-1",
      "start_pst": "2025-10-04T23:00:00",
      "end_pst": "2025-10-05T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "6.1833333333333333333333333333333333333333333333333",
      "contrast": "-0.0833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/PM25/-1",
      "start_pst": "2025-10-04T23:00:00",
      "end_pst": "2025-10-05T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.1245873652173913043478260869565217391304347826087",
      "contrast": "2.7754126347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/NO2/-1",
      "start_pst": "2025-10-04T23:00:00",
      "end_pst": "2025-10-05T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.1304347826086956521739130434782608695652173913043",
      "contrast": "2.7695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/NO2/-1",
      "start_pst": "2025-10-04T23:00:00",
      "end_pst": "2025-10-05T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "7.8928652",
      "contrast": "1.7071348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/NO2/-1",
      "start_pst": "2025-10-04T23:00:00",
      "end_pst": "2025-10-05T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "7.9",
      "contrast": "1.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/NO2/-1",
      "start_pst": "2025-10-04T23:00:00",
      "end_pst": "2025-10-05T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "6.1247385458333333333333333333333333333333333333333",
      "contrast": "-0.0247385458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/PM25/+0",
      "start_pst": "2025-10-05T00:00:00",
      "end_pst": "2025-10-06T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "6.1291666666666666666666666666666666666666666666667",
      "contrast": "-0.0291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/PM25/+0",
      "start_pst": "2025-10-05T00:00:00",
      "end_pst": "2025-10-06T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.0986695826086956521739130434782608695652173913043",
      "contrast": "2.8013304173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/NO2/+0",
      "start_pst": "2025-10-05T00:00:00",
      "end_pst": "2025-10-06T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.1043478260869565217391304347826086956521739130435",
      "contrast": "2.7956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/NO2/+0",
      "start_pst": "2025-10-05T00:00:00",
      "end_pst": "2025-10-06T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "7.8928652",
      "contrast": "1.7071348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/NO2/+0",
      "start_pst": "2025-10-05T00:00:00",
      "end_pst": "2025-10-06T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "7.9",
      "contrast": "1.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/NO2/+0",
      "start_pst": "2025-10-05T00:00:00",
      "end_pst": "2025-10-06T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "5.9815482916666666666666666666666666666666666666667",
      "contrast": "0.1184517083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/PM25/+1",
      "start_pst": "2025-10-05T01:00:00",
      "end_pst": "2025-10-06T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "5.9833333333333333333333333333333333333333333333333",
      "contrast": "0.1166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/PM25/+1",
      "start_pst": "2025-10-05T01:00:00",
      "end_pst": "2025-10-06T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.1018241521739130434782608695652173913043478260870",
      "contrast": "2.7981758478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/NO2/+1",
      "start_pst": "2025-10-05T01:00:00",
      "end_pst": "2025-10-06T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.1086956521739130434782608695652173913043478260870",
      "contrast": "2.7913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/NO2/+1",
      "start_pst": "2025-10-05T01:00:00",
      "end_pst": "2025-10-06T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "7.8928652",
      "contrast": "1.7071348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/NO2/+1",
      "start_pst": "2025-10-05T01:00:00",
      "end_pst": "2025-10-06T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "7.9",
      "contrast": "1.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-05/NO2/+1",
      "start_pst": "2025-10-05T01:00:00",
      "end_pst": "2025-10-06T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/5/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "5.5016845791666666666666666666666666666666666666667",
      "contrast": "1.1983154208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/PM25/-1",
      "start_pst": "2025-10-05T23:00:00",
      "end_pst": "2025-10-06T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "5.5",
      "contrast": "1.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/PM25/-1",
      "start_pst": "2025-10-05T23:00:00",
      "end_pst": "2025-10-06T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.8568453260869565217391304347826086956521739130435",
      "contrast": "1.2431546739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/NO2/-1",
      "start_pst": "2025-10-05T23:00:00",
      "end_pst": "2025-10-06T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.8652173913043478260869565217391304347826086956522",
      "contrast": "1.2347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/NO2/-1",
      "start_pst": "2025-10-05T23:00:00",
      "end_pst": "2025-10-06T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.0",
      "town": "13.3559504",
      "contrast": "-3.3559504",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/NO2/-1",
      "start_pst": "2025-10-05T23:00:00",
      "end_pst": "2025-10-06T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.0",
      "town": "13.4",
      "contrast": "-3.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/NO2/-1",
      "start_pst": "2025-10-05T23:00:00",
      "end_pst": "2025-10-06T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "5.45528745",
      "contrast": "1.24471255",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/PM25/+0",
      "start_pst": "2025-10-06T00:00:00",
      "end_pst": "2025-10-07T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "5.45",
      "contrast": "1.25",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/PM25/+0",
      "start_pst": "2025-10-06T00:00:00",
      "end_pst": "2025-10-07T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.8902593304347826086956521739130434782608695652174",
      "contrast": "1.2097406695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/NO2/+0",
      "start_pst": "2025-10-06T00:00:00",
      "end_pst": "2025-10-07T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.8956521739130434782608695652173913043478260869565",
      "contrast": "1.2043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/NO2/+0",
      "start_pst": "2025-10-06T00:00:00",
      "end_pst": "2025-10-07T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.0",
      "town": "13.3559504",
      "contrast": "-3.3559504",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/NO2/+0",
      "start_pst": "2025-10-06T00:00:00",
      "end_pst": "2025-10-07T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.0",
      "town": "13.4",
      "contrast": "-3.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/NO2/+0",
      "start_pst": "2025-10-06T00:00:00",
      "end_pst": "2025-10-07T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "5.4948079",
      "contrast": "1.2051921",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/PM25/+1",
      "start_pst": "2025-10-06T01:00:00",
      "end_pst": "2025-10-07T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "5.4916666666666666666666666666666666666666666666667",
      "contrast": "1.2083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/PM25/+1",
      "start_pst": "2025-10-06T01:00:00",
      "end_pst": "2025-10-07T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.8905028478260869565217391304347826086956521739130",
      "contrast": "1.2094971521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/NO2/+1",
      "start_pst": "2025-10-06T01:00:00",
      "end_pst": "2025-10-07T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "4.8956521739130434782608695652173913043478260869565",
      "contrast": "1.2043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/NO2/+1",
      "start_pst": "2025-10-06T01:00:00",
      "end_pst": "2025-10-07T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.0",
      "town": "13.3559504",
      "contrast": "-3.3559504",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/NO2/+1",
      "start_pst": "2025-10-06T01:00:00",
      "end_pst": "2025-10-07T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.0",
      "town": "13.4",
      "contrast": "-3.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-06/NO2/+1",
      "start_pst": "2025-10-06T01:00:00",
      "end_pst": "2025-10-07T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/6/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.5647895666666666666666666666666666666666666666667",
      "contrast": "2.7352104333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/PM25/-1",
      "start_pst": "2025-10-06T23:00:00",
      "end_pst": "2025-10-07T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.5583333333333333333333333333333333333333333333333",
      "contrast": "2.7416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/PM25/-1",
      "start_pst": "2025-10-06T23:00:00",
      "end_pst": "2025-10-07T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "3.7968805782608695652173913043478260869565217391304",
      "contrast": "3.5031194217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/NO2/-1",
      "start_pst": "2025-10-06T23:00:00",
      "end_pst": "2025-10-07T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "3.8",
      "contrast": "3.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/NO2/-1",
      "start_pst": "2025-10-06T23:00:00",
      "end_pst": "2025-10-07T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "8.9191036",
      "contrast": "6.9808964",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/NO2/-1",
      "start_pst": "2025-10-06T23:00:00",
      "end_pst": "2025-10-07T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "8.9",
      "contrast": "7.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/NO2/-1",
      "start_pst": "2025-10-06T23:00:00",
      "end_pst": "2025-10-07T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.6069814875",
      "contrast": "2.6930185125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/PM25/+0",
      "start_pst": "2025-10-07T00:00:00",
      "end_pst": "2025-10-08T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.6",
      "contrast": "2.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/PM25/+0",
      "start_pst": "2025-10-07T00:00:00",
      "end_pst": "2025-10-08T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "3.7314310956521739130434782608695652173913043478261",
      "contrast": "3.5685689043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/NO2/+0",
      "start_pst": "2025-10-07T00:00:00",
      "end_pst": "2025-10-08T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "3.7347826086956521739130434782608695652173913043478",
      "contrast": "3.5652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/NO2/+0",
      "start_pst": "2025-10-07T00:00:00",
      "end_pst": "2025-10-08T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "8.9191036",
      "contrast": "6.9808964",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/NO2/+0",
      "start_pst": "2025-10-07T00:00:00",
      "end_pst": "2025-10-08T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "8.9",
      "contrast": "7.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/NO2/+0",
      "start_pst": "2025-10-07T00:00:00",
      "end_pst": "2025-10-08T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.7482352166666666666666666666666666666666666666667",
      "contrast": "2.5517647833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/PM25/+1",
      "start_pst": "2025-10-07T01:00:00",
      "end_pst": "2025-10-08T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.7416666666666666666666666666666666666666666666667",
      "contrast": "2.5583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/PM25/+1",
      "start_pst": "2025-10-07T01:00:00",
      "end_pst": "2025-10-08T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "3.6943097565217391304347826086956521739130434782609",
      "contrast": "3.6056902434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/NO2/+1",
      "start_pst": "2025-10-07T01:00:00",
      "end_pst": "2025-10-08T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "3.7",
      "contrast": "3.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/NO2/+1",
      "start_pst": "2025-10-07T01:00:00",
      "end_pst": "2025-10-08T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "8.9191036",
      "contrast": "6.9808964",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/NO2/+1",
      "start_pst": "2025-10-07T01:00:00",
      "end_pst": "2025-10-08T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.9",
      "town": "8.9",
      "contrast": "7.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-07/NO2/+1",
      "start_pst": "2025-10-07T01:00:00",
      "end_pst": "2025-10-08T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/7/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "4.1833462375",
      "contrast": "2.9166537625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/PM25/-1",
      "start_pst": "2025-10-07T23:00:00",
      "end_pst": "2025-10-08T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "4.1833333333333333333333333333333333333333333333333",
      "contrast": "2.9166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/PM25/-1",
      "start_pst": "2025-10-07T23:00:00",
      "end_pst": "2025-10-08T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.2951400521739130434782608695652173913043478260870",
      "contrast": "4.6048599478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/NO2/-1",
      "start_pst": "2025-10-07T23:00:00",
      "end_pst": "2025-10-08T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.3043478260869565217391304347826086956521739130435",
      "contrast": "4.5956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/NO2/-1",
      "start_pst": "2025-10-07T23:00:00",
      "end_pst": "2025-10-08T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.2",
      "town": "10.296298",
      "contrast": "7.903702",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/NO2/-1",
      "start_pst": "2025-10-07T23:00:00",
      "end_pst": "2025-10-08T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.2",
      "town": "10.3",
      "contrast": "7.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/NO2/-1",
      "start_pst": "2025-10-07T23:00:00",
      "end_pst": "2025-10-08T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.9467788208333333333333333333333333333333333333333",
      "contrast": "3.1532211791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/PM25/+0",
      "start_pst": "2025-10-08T00:00:00",
      "end_pst": "2025-10-09T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.95",
      "contrast": "3.15",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/PM25/+0",
      "start_pst": "2025-10-08T00:00:00",
      "end_pst": "2025-10-09T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.2497339652173913043478260869565217391304347826087",
      "contrast": "4.6502660347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/NO2/+0",
      "start_pst": "2025-10-08T00:00:00",
      "end_pst": "2025-10-09T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.2608695652173913043478260869565217391304347826087",
      "contrast": "4.6391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/NO2/+0",
      "start_pst": "2025-10-08T00:00:00",
      "end_pst": "2025-10-09T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.2",
      "town": "10.296298",
      "contrast": "7.903702",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/NO2/+0",
      "start_pst": "2025-10-08T00:00:00",
      "end_pst": "2025-10-09T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.2",
      "town": "10.3",
      "contrast": "7.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/NO2/+0",
      "start_pst": "2025-10-08T00:00:00",
      "end_pst": "2025-10-09T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.675392725",
      "contrast": "3.424607275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/PM25/+1",
      "start_pst": "2025-10-08T01:00:00",
      "end_pst": "2025-10-09T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "3.6791666666666666666666666666666666666666666666667",
      "contrast": "3.4208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/PM25/+1",
      "start_pst": "2025-10-08T01:00:00",
      "end_pst": "2025-10-09T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.2148667869565217391304347826086956521739130434783",
      "contrast": "4.6851332130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/NO2/+1",
      "start_pst": "2025-10-08T01:00:00",
      "end_pst": "2025-10-09T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.2260869565217391304347826086956521739130434782609",
      "contrast": "4.6739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/NO2/+1",
      "start_pst": "2025-10-08T01:00:00",
      "end_pst": "2025-10-09T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.2",
      "town": "10.296298",
      "contrast": "7.903702",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/NO2/+1",
      "start_pst": "2025-10-08T01:00:00",
      "end_pst": "2025-10-09T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.2",
      "town": "10.3",
      "contrast": "7.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-08/NO2/+1",
      "start_pst": "2025-10-08T01:00:00",
      "end_pst": "2025-10-09T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/8/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.4100749125",
      "contrast": "2.0899250875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/PM25/-1",
      "start_pst": "2025-10-08T23:00:00",
      "end_pst": "2025-10-09T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.4208333333333333333333333333333333333333333333333",
      "contrast": "2.0791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/PM25/-1",
      "start_pst": "2025-10-08T23:00:00",
      "end_pst": "2025-10-09T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.7974735956521739130434782608695652173913043478261",
      "contrast": "2.1025264043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/NO2/-1",
      "start_pst": "2025-10-08T23:00:00",
      "end_pst": "2025-10-09T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.8043478260869565217391304347826086956521739130435",
      "contrast": "2.0956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/NO2/-1",
      "start_pst": "2025-10-08T23:00:00",
      "end_pst": "2025-10-09T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.6",
      "town": "13.6762686",
      "contrast": "12.9237314",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/NO2/-1",
      "start_pst": "2025-10-08T23:00:00",
      "end_pst": "2025-10-09T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.6",
      "town": "13.7",
      "contrast": "12.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/NO2/-1",
      "start_pst": "2025-10-08T23:00:00",
      "end_pst": "2025-10-09T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.5426742458333333333333333333333333333333333333333",
      "contrast": "1.9573257541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/PM25/+0",
      "start_pst": "2025-10-09T00:00:00",
      "end_pst": "2025-10-10T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.5541666666666666666666666666666666666666666666667",
      "contrast": "1.9458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/PM25/+0",
      "start_pst": "2025-10-09T00:00:00",
      "end_pst": "2025-10-10T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.8491329434782608695652173913043478260869565217391",
      "contrast": "2.0508670565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/NO2/+0",
      "start_pst": "2025-10-09T00:00:00",
      "end_pst": "2025-10-10T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.8565217391304347826086956521739130434782608695652",
      "contrast": "2.0434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/NO2/+0",
      "start_pst": "2025-10-09T00:00:00",
      "end_pst": "2025-10-10T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.6",
      "town": "13.6762686",
      "contrast": "12.9237314",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/NO2/+0",
      "start_pst": "2025-10-09T00:00:00",
      "end_pst": "2025-10-10T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.6",
      "town": "13.7",
      "contrast": "12.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/NO2/+0",
      "start_pst": "2025-10-09T00:00:00",
      "end_pst": "2025-10-10T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.6713862958333333333333333333333333333333333333333",
      "contrast": "1.8286137041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/PM25/+1",
      "start_pst": "2025-10-09T01:00:00",
      "end_pst": "2025-10-10T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "4.6833333333333333333333333333333333333333333333333",
      "contrast": "1.8166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/PM25/+1",
      "start_pst": "2025-10-09T01:00:00",
      "end_pst": "2025-10-10T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.8949531608695652173913043478260869565217391304348",
      "contrast": "2.0050468391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/NO2/+1",
      "start_pst": "2025-10-09T01:00:00",
      "end_pst": "2025-10-10T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "4.9",
      "contrast": "2.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/NO2/+1",
      "start_pst": "2025-10-09T01:00:00",
      "end_pst": "2025-10-10T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.6",
      "town": "13.6762686",
      "contrast": "12.9237314",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/NO2/+1",
      "start_pst": "2025-10-09T01:00:00",
      "end_pst": "2025-10-10T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.6",
      "town": "13.7",
      "contrast": "12.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-09/NO2/+1",
      "start_pst": "2025-10-09T01:00:00",
      "end_pst": "2025-10-10T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/9/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.1415446916666666666666666666666666666666666666667",
      "contrast": "4.0584553083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/PM25/-1",
      "start_pst": "2025-10-09T23:00:00",
      "end_pst": "2025-10-10T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.1416666666666666666666666666666666666666666666667",
      "contrast": "4.0583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/PM25/-1",
      "start_pst": "2025-10-09T23:00:00",
      "end_pst": "2025-10-10T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "6.9203398086956521739130434782608695652173913043478",
      "contrast": "3.5796601913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/NO2/-1",
      "start_pst": "2025-10-09T23:00:00",
      "end_pst": "2025-10-10T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "6.9217391304347826086956521739130434782608695652174",
      "contrast": "3.5782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/NO2/-1",
      "start_pst": "2025-10-09T23:00:00",
      "end_pst": "2025-10-10T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "10.7036753",
      "contrast": "13.0963247",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/NO2/-1",
      "start_pst": "2025-10-09T23:00:00",
      "end_pst": "2025-10-10T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "10.7",
      "contrast": "13.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/NO2/-1",
      "start_pst": "2025-10-09T23:00:00",
      "end_pst": "2025-10-10T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.0896491916666666666666666666666666666666666666667",
      "contrast": "4.1103508083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/PM25/+0",
      "start_pst": "2025-10-10T00:00:00",
      "end_pst": "2025-10-11T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.0875",
      "contrast": "4.1125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/PM25/+0",
      "start_pst": "2025-10-10T00:00:00",
      "end_pst": "2025-10-11T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "7.0580799391304347826086956521739130434782608695652",
      "contrast": "3.4419200608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/NO2/+0",
      "start_pst": "2025-10-10T00:00:00",
      "end_pst": "2025-10-11T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "7.0565217391304347826086956521739130434782608695652",
      "contrast": "3.4434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/NO2/+0",
      "start_pst": "2025-10-10T00:00:00",
      "end_pst": "2025-10-11T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "10.7036753",
      "contrast": "13.0963247",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/NO2/+0",
      "start_pst": "2025-10-10T00:00:00",
      "end_pst": "2025-10-11T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "10.7",
      "contrast": "13.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/NO2/+0",
      "start_pst": "2025-10-10T00:00:00",
      "end_pst": "2025-10-11T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.0390741041666666666666666666666666666666666666667",
      "contrast": "4.1609258958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/PM25/+1",
      "start_pst": "2025-10-10T01:00:00",
      "end_pst": "2025-10-11T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "4.0333333333333333333333333333333333333333333333333",
      "contrast": "4.1666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/PM25/+1",
      "start_pst": "2025-10-10T01:00:00",
      "end_pst": "2025-10-11T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "7.1849046347826086956521739130434782608695652173913",
      "contrast": "3.3150953652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/NO2/+1",
      "start_pst": "2025-10-10T01:00:00",
      "end_pst": "2025-10-11T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "7.1826086956521739130434782608695652173913043478261",
      "contrast": "3.3173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/NO2/+1",
      "start_pst": "2025-10-10T01:00:00",
      "end_pst": "2025-10-11T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "10.7036753",
      "contrast": "13.0963247",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/NO2/+1",
      "start_pst": "2025-10-10T01:00:00",
      "end_pst": "2025-10-11T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.8",
      "town": "10.7",
      "contrast": "13.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-10/NO2/+1",
      "start_pst": "2025-10-10T01:00:00",
      "end_pst": "2025-10-11T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/10/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.5429551166666666666666666666666666666666666666667",
      "contrast": "1.6570448833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-11/PM25/-1",
      "start_pst": "2025-10-10T23:00:00",
      "end_pst": "2025-10-11T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.5458333333333333333333333333333333333333333333333",
      "contrast": "1.6541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-11/PM25/-1",
      "start_pst": "2025-10-10T23:00:00",
      "end_pst": "2025-10-11T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.5193693521739130434782608695652173913043478260870",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-11/NO2/-1",
      "start_pst": "2025-10-10T23:00:00",
      "end_pst": "2025-10-11T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.5173913043478260869565217391304347826086956521739",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-11/NO2/-1",
      "start_pst": "2025-10-10T23:00:00",
      "end_pst": "2025-10-11T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.7811203",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-11/NO2/-1",
      "start_pst": "2025-10-10T23:00:00",
      "end_pst": "2025-10-11T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.8",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-11/NO2/-1",
      "start_pst": "2025-10-10T23:00:00",
      "end_pst": "2025-10-11T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.5785744583333333333333333333333333333333333333333",
      "contrast": "1.6214255416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-11/PM25/+0",
      "start_pst": "2025-10-11T00:00:00",
      "end_pst": "2025-10-12T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.5833333333333333333333333333333333333333333333333",
      "contrast": "1.6166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-11/PM25/+0",
      "start_pst": "2025-10-11T00:00:00",
      "end_pst": "2025-10-12T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.4753082652173913043478260869565217391304347826087",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-11/NO2/+0",
      "start_pst": "2025-10-11T00:00:00",
      "end_pst": "2025-10-12T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.4739130434782608695652173913043478260869565217391",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-11/NO2/+0",
      "start_pst": "2025-10-11T00:00:00",
      "end_pst": "2025-10-12T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.7811203",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-11/NO2/+0",
      "start_pst": "2025-10-11T00:00:00",
      "end_pst": "2025-10-12T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.8",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-11/NO2/+0",
      "start_pst": "2025-10-11T00:00:00",
      "end_pst": "2025-10-12T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.6623342125",
      "contrast": "1.5376657875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-11/PM25/+1",
      "start_pst": "2025-10-11T01:00:00",
      "end_pst": "2025-10-12T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "4.6708333333333333333333333333333333333333333333333",
      "contrast": "1.5291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-11/PM25/+1",
      "start_pst": "2025-10-11T01:00:00",
      "end_pst": "2025-10-12T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.4062052652173913043478260869565217391304347826087",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-11/NO2/+1",
      "start_pst": "2025-10-11T01:00:00",
      "end_pst": "2025-10-12T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.4043478260869565217391304347826086956521739130435",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-11/NO2/+1",
      "start_pst": "2025-10-11T01:00:00",
      "end_pst": "2025-10-12T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.7811203",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-11/NO2/+1",
      "start_pst": "2025-10-11T01:00:00",
      "end_pst": "2025-10-12T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "9.8",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-11/NO2/+1",
      "start_pst": "2025-10-11T01:00:00",
      "end_pst": "2025-10-12T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/11/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.9115236291666666666666666666666666666666666666667",
      "contrast": "3.5884763708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-12/PM25/-1",
      "start_pst": "2025-10-11T23:00:00",
      "end_pst": "2025-10-12T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.9125",
      "contrast": "3.5875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-12/PM25/-1",
      "start_pst": "2025-10-11T23:00:00",
      "end_pst": "2025-10-12T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "1.4637026869565217391304347826086956521739130434783",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-12/NO2/-1",
      "start_pst": "2025-10-11T23:00:00",
      "end_pst": "2025-10-12T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "1.4652173913043478260869565217391304347826086956522",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-12/NO2/-1",
      "start_pst": "2025-10-11T23:00:00",
      "end_pst": "2025-10-12T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.2797179",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-12/NO2/-1",
      "start_pst": "2025-10-11T23:00:00",
      "end_pst": "2025-10-12T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-12/NO2/-1",
      "start_pst": "2025-10-11T23:00:00",
      "end_pst": "2025-10-12T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.7822485375",
      "contrast": "3.7177514625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-12/PM25/+0",
      "start_pst": "2025-10-12T00:00:00",
      "end_pst": "2025-10-13T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.7833333333333333333333333333333333333333333333333",
      "contrast": "3.7166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-12/PM25/+0",
      "start_pst": "2025-10-12T00:00:00",
      "end_pst": "2025-10-13T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "1.3144907739130434782608695652173913043478260869565",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-12/NO2/+0",
      "start_pst": "2025-10-12T00:00:00",
      "end_pst": "2025-10-13T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "1.3173913043478260869565217391304347826086956521739",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-12/NO2/+0",
      "start_pst": "2025-10-12T00:00:00",
      "end_pst": "2025-10-13T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.2797179",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-12/NO2/+0",
      "start_pst": "2025-10-12T00:00:00",
      "end_pst": "2025-10-13T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-12/NO2/+0",
      "start_pst": "2025-10-12T00:00:00",
      "end_pst": "2025-10-13T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.6309276958333333333333333333333333333333333333333",
      "contrast": "3.8690723041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-12/PM25/+1",
      "start_pst": "2025-10-12T01:00:00",
      "end_pst": "2025-10-13T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.6291666666666666666666666666666666666666666666667",
      "contrast": "3.8708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-12/PM25/+1",
      "start_pst": "2025-10-12T01:00:00",
      "end_pst": "2025-10-13T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "1.2001084260869565217391304347826086956521739130435",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-12/NO2/+1",
      "start_pst": "2025-10-12T01:00:00",
      "end_pst": "2025-10-13T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "1.2043478260869565217391304347826086956521739130435",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-12/NO2/+1",
      "start_pst": "2025-10-12T01:00:00",
      "end_pst": "2025-10-13T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.2797179",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-12/NO2/+1",
      "start_pst": "2025-10-12T01:00:00",
      "end_pst": "2025-10-13T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "4.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-12/NO2/+1",
      "start_pst": "2025-10-12T01:00:00",
      "end_pst": "2025-10-13T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/12/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.3660697625",
      "contrast": "4.0339302375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-13/PM25/-1",
      "start_pst": "2025-10-12T23:00:00",
      "end_pst": "2025-10-13T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.3583333333333333333333333333333333333333333333333",
      "contrast": "4.0416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-13/PM25/-1",
      "start_pst": "2025-10-12T23:00:00",
      "end_pst": "2025-10-13T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "1.0962598652173913043478260869565217391304347826087",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-13/NO2/-1",
      "start_pst": "2025-10-12T23:00:00",
      "end_pst": "2025-10-13T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "1.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-13/NO2/-1",
      "start_pst": "2025-10-12T23:00:00",
      "end_pst": "2025-10-13T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.3013639",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-13/NO2/-1",
      "start_pst": "2025-10-12T23:00:00",
      "end_pst": "2025-10-13T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-13/NO2/-1",
      "start_pst": "2025-10-12T23:00:00",
      "end_pst": "2025-10-13T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.5374001",
      "contrast": "3.8625999",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-13/PM25/+0",
      "start_pst": "2025-10-13T00:00:00",
      "end_pst": "2025-10-14T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.5291666666666666666666666666666666666666666666667",
      "contrast": "3.8708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-13/PM25/+0",
      "start_pst": "2025-10-13T00:00:00",
      "end_pst": "2025-10-14T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "1.1541785173913043478260869565217391304347826086957",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-13/NO2/+0",
      "start_pst": "2025-10-13T00:00:00",
      "end_pst": "2025-10-14T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "1.1565217391304347826086956521739130434782608695652",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-13/NO2/+0",
      "start_pst": "2025-10-13T00:00:00",
      "end_pst": "2025-10-14T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.3013639",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-13/NO2/+0",
      "start_pst": "2025-10-13T00:00:00",
      "end_pst": "2025-10-14T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-13/NO2/+0",
      "start_pst": "2025-10-13T00:00:00",
      "end_pst": "2025-10-14T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.7248184666666666666666666666666666666666666666667",
      "contrast": "3.6751815333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-13/PM25/+1",
      "start_pst": "2025-10-13T01:00:00",
      "end_pst": "2025-10-14T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.7166666666666666666666666666666666666666666666667",
      "contrast": "3.6833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-13/PM25/+1",
      "start_pst": "2025-10-13T01:00:00",
      "end_pst": "2025-10-14T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "1.2619673478260869565217391304347826086956521739130",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-13/NO2/+1",
      "start_pst": "2025-10-13T01:00:00",
      "end_pst": "2025-10-14T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "1.2652173913043478260869565217391304347826086956522",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-13/NO2/+1",
      "start_pst": "2025-10-13T01:00:00",
      "end_pst": "2025-10-14T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.3013639",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-13/NO2/+1",
      "start_pst": "2025-10-13T01:00:00",
      "end_pst": "2025-10-14T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "3.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-13/NO2/+1",
      "start_pst": "2025-10-13T01:00:00",
      "end_pst": "2025-10-14T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/13/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.1389210875",
      "contrast": "1.9610789125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-14/PM25/-1",
      "start_pst": "2025-10-13T23:00:00",
      "end_pst": "2025-10-14T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.1416666666666666666666666666666666666666666666667",
      "contrast": "1.9583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-14/PM25/-1",
      "start_pst": "2025-10-13T23:00:00",
      "end_pst": "2025-10-14T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.8782572608695652173913043478260869565217391304348",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-14/NO2/-1",
      "start_pst": "2025-10-13T23:00:00",
      "end_pst": "2025-10-14T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "6.8826086956521739130434782608695652173913043478261",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-14/NO2/-1",
      "start_pst": "2025-10-13T23:00:00",
      "end_pst": "2025-10-14T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "16.0406609",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-14/NO2/-1",
      "start_pst": "2025-10-13T23:00:00",
      "end_pst": "2025-10-14T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "16",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-14/NO2/-1",
      "start_pst": "2025-10-13T23:00:00",
      "end_pst": "2025-10-14T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.1934825833333333333333333333333333333333333333333",
      "contrast": "1.9065174166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-14/PM25/+0",
      "start_pst": "2025-10-14T00:00:00",
      "end_pst": "2025-10-15T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.1958333333333333333333333333333333333333333333333",
      "contrast": "1.9041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-14/PM25/+0",
      "start_pst": "2025-10-14T00:00:00",
      "end_pst": "2025-10-15T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.0305496521739130434782608695652173913043478260870",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-14/NO2/+0",
      "start_pst": "2025-10-14T00:00:00",
      "end_pst": "2025-10-15T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.0347826086956521739130434782608695652173913043478",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-14/NO2/+0",
      "start_pst": "2025-10-14T00:00:00",
      "end_pst": "2025-10-15T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "16.0406609",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-14/NO2/+0",
      "start_pst": "2025-10-14T00:00:00",
      "end_pst": "2025-10-15T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "16",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-14/NO2/+0",
      "start_pst": "2025-10-14T00:00:00",
      "end_pst": "2025-10-15T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.1175076416666666666666666666666666666666666666667",
      "contrast": "1.9824923583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-14/PM25/+1",
      "start_pst": "2025-10-14T01:00:00",
      "end_pst": "2025-10-15T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "5.1208333333333333333333333333333333333333333333333",
      "contrast": "1.9791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-14/PM25/+1",
      "start_pst": "2025-10-14T01:00:00",
      "end_pst": "2025-10-15T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.0924605173913043478260869565217391304347826086957",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-14/NO2/+1",
      "start_pst": "2025-10-14T01:00:00",
      "end_pst": "2025-10-15T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "7.0956521739130434782608695652173913043478260869565",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-14/NO2/+1",
      "start_pst": "2025-10-14T01:00:00",
      "end_pst": "2025-10-15T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "16.0406609",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-14/NO2/+1",
      "start_pst": "2025-10-14T01:00:00",
      "end_pst": "2025-10-15T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013a",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "a",
      "onsite": null,
      "town": "16",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-14/NO2/+1",
      "start_pst": "2025-10-14T01:00:00",
      "end_pst": "2025-10-15T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/14/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "4.2369743458333333333333333333333333333333333333333",
      "contrast": "3.2630256541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/PM25/-1",
      "start_pst": "2025-10-14T23:00:00",
      "end_pst": "2025-10-15T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "4.2333333333333333333333333333333333333333333333333",
      "contrast": "3.2666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/PM25/-1",
      "start_pst": "2025-10-14T23:00:00",
      "end_pst": "2025-10-15T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "6.8970483565217391304347826086956521739130434782609",
      "contrast": "1.2029516434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/NO2/-1",
      "start_pst": "2025-10-14T23:00:00",
      "end_pst": "2025-10-15T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "6.8869565217391304347826086956521739130434782608696",
      "contrast": "1.2130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/NO2/-1",
      "start_pst": "2025-10-14T23:00:00",
      "end_pst": "2025-10-15T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.2",
      "town": "17.6273308",
      "contrast": "-1.4273308",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/NO2/-1",
      "start_pst": "2025-10-14T23:00:00",
      "end_pst": "2025-10-15T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.2",
      "town": "17.6",
      "contrast": "-1.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/NO2/-1",
      "start_pst": "2025-10-14T23:00:00",
      "end_pst": "2025-10-15T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "4.3334713458333333333333333333333333333333333333333",
      "contrast": "3.1665286541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/PM25/+0",
      "start_pst": "2025-10-15T00:00:00",
      "end_pst": "2025-10-16T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "4.3291666666666666666666666666666666666666666666667",
      "contrast": "3.1708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/PM25/+0",
      "start_pst": "2025-10-15T00:00:00",
      "end_pst": "2025-10-16T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "6.8223485304347826086956521739130434782608695652174",
      "contrast": "1.2776514695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/NO2/+0",
      "start_pst": "2025-10-15T00:00:00",
      "end_pst": "2025-10-16T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "6.8130434782608695652173913043478260869565217391304",
      "contrast": "1.2869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/NO2/+0",
      "start_pst": "2025-10-15T00:00:00",
      "end_pst": "2025-10-16T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.2",
      "town": "17.6273308",
      "contrast": "-1.4273308",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/NO2/+0",
      "start_pst": "2025-10-15T00:00:00",
      "end_pst": "2025-10-16T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.2",
      "town": "17.6",
      "contrast": "-1.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/NO2/+0",
      "start_pst": "2025-10-15T00:00:00",
      "end_pst": "2025-10-16T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "4.3949917041666666666666666666666666666666666666667",
      "contrast": "3.1050082958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/PM25/+1",
      "start_pst": "2025-10-15T01:00:00",
      "end_pst": "2025-10-16T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "4.3916666666666666666666666666666666666666666666667",
      "contrast": "3.1083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/PM25/+1",
      "start_pst": "2025-10-15T01:00:00",
      "end_pst": "2025-10-16T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "6.7556444869565217391304347826086956521739130434783",
      "contrast": "1.3443555130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/NO2/+1",
      "start_pst": "2025-10-15T01:00:00",
      "end_pst": "2025-10-16T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "6.7478260869565217391304347826086956521739130434783",
      "contrast": "1.3521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/NO2/+1",
      "start_pst": "2025-10-15T01:00:00",
      "end_pst": "2025-10-16T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.2",
      "town": "17.6273308",
      "contrast": "-1.4273308",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/NO2/+1",
      "start_pst": "2025-10-15T01:00:00",
      "end_pst": "2025-10-16T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.2",
      "town": "17.6",
      "contrast": "-1.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-15/NO2/+1",
      "start_pst": "2025-10-15T01:00:00",
      "end_pst": "2025-10-16T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/15/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.4590523791666666666666666666666666666666666666667",
      "contrast": "2.4409476208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/PM25/-1",
      "start_pst": "2025-10-15T23:00:00",
      "end_pst": "2025-10-16T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.4625",
      "contrast": "2.4375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/PM25/-1",
      "start_pst": "2025-10-15T23:00:00",
      "end_pst": "2025-10-16T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "7.9812838565217391304347826086956521739130434782609",
      "contrast": "3.6187161434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/NO2/-1",
      "start_pst": "2025-10-15T23:00:00",
      "end_pst": "2025-10-16T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "7.9826086956521739130434782608695652173913043478261",
      "contrast": "3.6173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/NO2/-1",
      "start_pst": "2025-10-15T23:00:00",
      "end_pst": "2025-10-16T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "17.2579155",
      "contrast": "-0.1579155",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/NO2/-1",
      "start_pst": "2025-10-15T23:00:00",
      "end_pst": "2025-10-16T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "17.3",
      "contrast": "-0.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/NO2/-1",
      "start_pst": "2025-10-15T23:00:00",
      "end_pst": "2025-10-16T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.3590660041666666666666666666666666666666666666667",
      "contrast": "2.5409339958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/PM25/+0",
      "start_pst": "2025-10-16T00:00:00",
      "end_pst": "2025-10-17T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.3625",
      "contrast": "2.5375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/PM25/+0",
      "start_pst": "2025-10-16T00:00:00",
      "end_pst": "2025-10-17T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "8.3067572608695652173913043478260869565217391304348",
      "contrast": "3.2932427391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/NO2/+0",
      "start_pst": "2025-10-16T00:00:00",
      "end_pst": "2025-10-17T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "8.3086956521739130434782608695652173913043478260870",
      "contrast": "3.2913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/NO2/+0",
      "start_pst": "2025-10-16T00:00:00",
      "end_pst": "2025-10-17T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "17.2579155",
      "contrast": "-0.1579155",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/NO2/+0",
      "start_pst": "2025-10-16T00:00:00",
      "end_pst": "2025-10-17T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "17.3",
      "contrast": "-0.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/NO2/+0",
      "start_pst": "2025-10-16T00:00:00",
      "end_pst": "2025-10-17T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.3907271791666666666666666666666666666666666666667",
      "contrast": "2.5092728208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/PM25/+1",
      "start_pst": "2025-10-16T01:00:00",
      "end_pst": "2025-10-17T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.3916666666666666666666666666666666666666666666667",
      "contrast": "2.5083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/PM25/+1",
      "start_pst": "2025-10-16T01:00:00",
      "end_pst": "2025-10-17T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "8.6697952608695652173913043478260869565217391304348",
      "contrast": "2.9302047391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/NO2/+1",
      "start_pst": "2025-10-16T01:00:00",
      "end_pst": "2025-10-17T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.6",
      "town": "8.6695652173913043478260869565217391304347826086957",
      "contrast": "2.9304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/NO2/+1",
      "start_pst": "2025-10-16T01:00:00",
      "end_pst": "2025-10-17T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "17.2579155",
      "contrast": "-0.1579155",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/NO2/+1",
      "start_pst": "2025-10-16T01:00:00",
      "end_pst": "2025-10-17T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.1",
      "town": "17.3",
      "contrast": "-0.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-16/NO2/+1",
      "start_pst": "2025-10-16T01:00:00",
      "end_pst": "2025-10-17T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/16/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "7.8676062541666666666666666666666666666666666666667",
      "contrast": "0.6323937458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/PM25/-1",
      "start_pst": "2025-10-16T23:00:00",
      "end_pst": "2025-10-17T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "7.8708333333333333333333333333333333333333333333333",
      "contrast": "0.6291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/PM25/-1",
      "start_pst": "2025-10-16T23:00:00",
      "end_pst": "2025-10-17T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "7.5933884347826086956521739130434782608695652173913",
      "contrast": "1.3066115652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/NO2/-1",
      "start_pst": "2025-10-16T23:00:00",
      "end_pst": "2025-10-17T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "7.5826086956521739130434782608695652173913043478261",
      "contrast": "1.3173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/NO2/-1",
      "start_pst": "2025-10-16T23:00:00",
      "end_pst": "2025-10-17T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "14.359992",
      "contrast": "-0.159992",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/NO2/-1",
      "start_pst": "2025-10-16T23:00:00",
      "end_pst": "2025-10-17T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "14.4",
      "contrast": "-0.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/NO2/-1",
      "start_pst": "2025-10-16T23:00:00",
      "end_pst": "2025-10-17T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "8.161271725",
      "contrast": "0.338728275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/PM25/+0",
      "start_pst": "2025-10-17T00:00:00",
      "end_pst": "2025-10-18T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "8.1625",
      "contrast": "0.3375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/PM25/+0",
      "start_pst": "2025-10-17T00:00:00",
      "end_pst": "2025-10-18T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "7.2824982478260869565217391304347826086956521739130",
      "contrast": "1.6175017521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/NO2/+0",
      "start_pst": "2025-10-17T00:00:00",
      "end_pst": "2025-10-18T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "7.2695652173913043478260869565217391304347826086957",
      "contrast": "1.6304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/NO2/+0",
      "start_pst": "2025-10-17T00:00:00",
      "end_pst": "2025-10-18T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "14.359992",
      "contrast": "-0.159992",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/NO2/+0",
      "start_pst": "2025-10-17T00:00:00",
      "end_pst": "2025-10-18T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "14.4",
      "contrast": "-0.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/NO2/+0",
      "start_pst": "2025-10-17T00:00:00",
      "end_pst": "2025-10-18T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "8.6024497083333333333333333333333333333333333333333",
      "contrast": "-0.1024497083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/PM25/+1",
      "start_pst": "2025-10-17T01:00:00",
      "end_pst": "2025-10-18T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.5",
      "town": "8.6041666666666666666666666666666666666666666666667",
      "contrast": "-0.1041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/PM25/+1",
      "start_pst": "2025-10-17T01:00:00",
      "end_pst": "2025-10-18T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.9389579",
      "contrast": "1.9610421",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/NO2/+1",
      "start_pst": "2025-10-17T01:00:00",
      "end_pst": "2025-10-18T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "6.9260869565217391304347826086956521739130434782609",
      "contrast": "1.9739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/NO2/+1",
      "start_pst": "2025-10-17T01:00:00",
      "end_pst": "2025-10-18T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "14.359992",
      "contrast": "-0.159992",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/NO2/+1",
      "start_pst": "2025-10-17T01:00:00",
      "end_pst": "2025-10-18T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "14.4",
      "contrast": "-0.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-17/NO2/+1",
      "start_pst": "2025-10-17T01:00:00",
      "end_pst": "2025-10-18T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/17/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "5.6195307",
      "contrast": "0.3804693",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/PM25/-1",
      "start_pst": "2025-10-17T23:00:00",
      "end_pst": "2025-10-18T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "5.6208333333333333333333333333333333333333333333333",
      "contrast": "0.3791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/PM25/-1",
      "start_pst": "2025-10-17T23:00:00",
      "end_pst": "2025-10-18T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "4.8118008391304347826086956521739130434782608695652",
      "contrast": "4.4881991608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/NO2/-1",
      "start_pst": "2025-10-17T23:00:00",
      "end_pst": "2025-10-18T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "4.8086956521739130434782608695652173913043478260870",
      "contrast": "4.4913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/NO2/-1",
      "start_pst": "2025-10-17T23:00:00",
      "end_pst": "2025-10-18T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "8.3976288",
      "contrast": "13.7023712",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/NO2/-1",
      "start_pst": "2025-10-17T23:00:00",
      "end_pst": "2025-10-18T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "8.4",
      "contrast": "13.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/NO2/-1",
      "start_pst": "2025-10-17T23:00:00",
      "end_pst": "2025-10-18T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "5.1024340208333333333333333333333333333333333333333",
      "contrast": "0.8975659791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/PM25/+0",
      "start_pst": "2025-10-18T00:00:00",
      "end_pst": "2025-10-19T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "5.1041666666666666666666666666666666666666666666667",
      "contrast": "0.8958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/PM25/+0",
      "start_pst": "2025-10-18T00:00:00",
      "end_pst": "2025-10-19T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "4.7107786652173913043478260869565217391304347826087",
      "contrast": "4.5892213347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/NO2/+0",
      "start_pst": "2025-10-18T00:00:00",
      "end_pst": "2025-10-19T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "4.7086956521739130434782608695652173913043478260870",
      "contrast": "4.5913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/NO2/+0",
      "start_pst": "2025-10-18T00:00:00",
      "end_pst": "2025-10-19T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "8.3976288",
      "contrast": "13.7023712",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/NO2/+0",
      "start_pst": "2025-10-18T00:00:00",
      "end_pst": "2025-10-19T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "8.4",
      "contrast": "13.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/NO2/+0",
      "start_pst": "2025-10-18T00:00:00",
      "end_pst": "2025-10-19T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "4.4020267875",
      "contrast": "1.5979732125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/PM25/+1",
      "start_pst": "2025-10-18T01:00:00",
      "end_pst": "2025-10-19T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "4.4041666666666666666666666666666666666666666666667",
      "contrast": "1.5958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/PM25/+1",
      "start_pst": "2025-10-18T01:00:00",
      "end_pst": "2025-10-19T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "4.6092081",
      "contrast": "4.6907919",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/NO2/+1",
      "start_pst": "2025-10-18T01:00:00",
      "end_pst": "2025-10-19T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.3",
      "town": "4.6086956521739130434782608695652173913043478260870",
      "contrast": "4.6913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/NO2/+1",
      "start_pst": "2025-10-18T01:00:00",
      "end_pst": "2025-10-19T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "8.3976288",
      "contrast": "13.7023712",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/NO2/+1",
      "start_pst": "2025-10-18T01:00:00",
      "end_pst": "2025-10-19T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "8.4",
      "contrast": "13.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-18/NO2/+1",
      "start_pst": "2025-10-18T01:00:00",
      "end_pst": "2025-10-19T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/18/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "2.7037341041666666666666666666666666666666666666667",
      "contrast": "2.6962658958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/PM25/-1",
      "start_pst": "2025-10-18T23:00:00",
      "end_pst": "2025-10-19T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "2.7",
      "contrast": "2.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/PM25/-1",
      "start_pst": "2025-10-18T23:00:00",
      "end_pst": "2025-10-19T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.3299152826086956521739130434782608695652173913043",
      "contrast": "6.5700847173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/NO2/-1",
      "start_pst": "2025-10-18T23:00:00",
      "end_pst": "2025-10-19T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.3304347826086956521739130434782608695652173913043",
      "contrast": "6.5695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/NO2/-1",
      "start_pst": "2025-10-18T23:00:00",
      "end_pst": "2025-10-19T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.8",
      "town": "6.4099259",
      "contrast": "13.3900741",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/NO2/-1",
      "start_pst": "2025-10-18T23:00:00",
      "end_pst": "2025-10-19T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.8",
      "town": "6.4",
      "contrast": "13.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/NO2/-1",
      "start_pst": "2025-10-18T23:00:00",
      "end_pst": "2025-10-19T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "2.7825474791666666666666666666666666666666666666667",
      "contrast": "2.6174525208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/PM25/+0",
      "start_pst": "2025-10-19T00:00:00",
      "end_pst": "2025-10-20T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "2.7791666666666666666666666666666666666666666666667",
      "contrast": "2.6208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/PM25/+0",
      "start_pst": "2025-10-19T00:00:00",
      "end_pst": "2025-10-20T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.3284891521739130434782608695652173913043478260870",
      "contrast": "6.5715108478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/NO2/+0",
      "start_pst": "2025-10-19T00:00:00",
      "end_pst": "2025-10-20T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.3304347826086956521739130434782608695652173913043",
      "contrast": "6.5695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/NO2/+0",
      "start_pst": "2025-10-19T00:00:00",
      "end_pst": "2025-10-20T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.8",
      "town": "6.4099259",
      "contrast": "13.3900741",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/NO2/+0",
      "start_pst": "2025-10-19T00:00:00",
      "end_pst": "2025-10-20T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.8",
      "town": "6.4",
      "contrast": "13.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/NO2/+0",
      "start_pst": "2025-10-19T00:00:00",
      "end_pst": "2025-10-20T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "2.8691750666666666666666666666666666666666666666667",
      "contrast": "2.5308249333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/PM25/+1",
      "start_pst": "2025-10-19T01:00:00",
      "end_pst": "2025-10-20T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "2.8666666666666666666666666666666666666666666666667",
      "contrast": "2.5333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/PM25/+1",
      "start_pst": "2025-10-19T01:00:00",
      "end_pst": "2025-10-20T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.3600108956521739130434782608695652173913043478261",
      "contrast": "6.5399891043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/NO2/+1",
      "start_pst": "2025-10-19T01:00:00",
      "end_pst": "2025-10-20T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.3608695652173913043478260869565217391304347826087",
      "contrast": "6.5391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/NO2/+1",
      "start_pst": "2025-10-19T01:00:00",
      "end_pst": "2025-10-20T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.8",
      "town": "6.4099259",
      "contrast": "13.3900741",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/NO2/+1",
      "start_pst": "2025-10-19T01:00:00",
      "end_pst": "2025-10-20T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.8",
      "town": "6.4",
      "contrast": "13.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-19/NO2/+1",
      "start_pst": "2025-10-19T01:00:00",
      "end_pst": "2025-10-20T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/19/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "3.818639775",
      "contrast": "3.181360225",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/PM25/-1",
      "start_pst": "2025-10-19T23:00:00",
      "end_pst": "2025-10-20T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "3.8125",
      "contrast": "3.1875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/PM25/-1",
      "start_pst": "2025-10-19T23:00:00",
      "end_pst": "2025-10-20T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.4",
      "town": "6.0352410173913043478260869565217391304347826086957",
      "contrast": "3.3647589826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/NO2/-1",
      "start_pst": "2025-10-19T23:00:00",
      "end_pst": "2025-10-20T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.4",
      "town": "6.0260869565217391304347826086956521739130434782609",
      "contrast": "3.3739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/NO2/-1",
      "start_pst": "2025-10-19T23:00:00",
      "end_pst": "2025-10-20T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "14.428091",
      "contrast": "1.071909",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/NO2/-1",
      "start_pst": "2025-10-19T23:00:00",
      "end_pst": "2025-10-20T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "14.4",
      "contrast": "1.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/NO2/-1",
      "start_pst": "2025-10-19T23:00:00",
      "end_pst": "2025-10-20T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "3.7587249416666666666666666666666666666666666666667",
      "contrast": "3.2412750583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/PM25/+0",
      "start_pst": "2025-10-20T00:00:00",
      "end_pst": "2025-10-21T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "3.7541666666666666666666666666666666666666666666667",
      "contrast": "3.2458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/PM25/+0",
      "start_pst": "2025-10-20T00:00:00",
      "end_pst": "2025-10-21T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.4",
      "town": "6.1258960608695652173913043478260869565217391304348",
      "contrast": "3.2741039391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/NO2/+0",
      "start_pst": "2025-10-20T00:00:00",
      "end_pst": "2025-10-21T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.4",
      "town": "6.1173913043478260869565217391304347826086956521739",
      "contrast": "3.2826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/NO2/+0",
      "start_pst": "2025-10-20T00:00:00",
      "end_pst": "2025-10-21T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "14.428091",
      "contrast": "1.071909",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/NO2/+0",
      "start_pst": "2025-10-20T00:00:00",
      "end_pst": "2025-10-21T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "14.4",
      "contrast": "1.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/NO2/+0",
      "start_pst": "2025-10-20T00:00:00",
      "end_pst": "2025-10-21T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "3.7170931875",
      "contrast": "3.2829068125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/PM25/+1",
      "start_pst": "2025-10-20T01:00:00",
      "end_pst": "2025-10-21T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.0",
      "town": "3.7125",
      "contrast": "3.2875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/PM25/+1",
      "start_pst": "2025-10-20T01:00:00",
      "end_pst": "2025-10-21T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.4",
      "town": "6.2800296739130434782608695652173913043478260869565",
      "contrast": "3.1199703260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/NO2/+1",
      "start_pst": "2025-10-20T01:00:00",
      "end_pst": "2025-10-21T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.4",
      "town": "6.2739130434782608695652173913043478260869565217391",
      "contrast": "3.1260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/NO2/+1",
      "start_pst": "2025-10-20T01:00:00",
      "end_pst": "2025-10-21T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "14.428091",
      "contrast": "1.071909",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/NO2/+1",
      "start_pst": "2025-10-20T01:00:00",
      "end_pst": "2025-10-21T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "14.4",
      "contrast": "1.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-20/NO2/+1",
      "start_pst": "2025-10-20T01:00:00",
      "end_pst": "2025-10-21T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/20/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.560138275",
      "contrast": "2.939861725",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/PM25/-1",
      "start_pst": "2025-10-20T23:00:00",
      "end_pst": "2025-10-21T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.5625",
      "contrast": "2.9375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/PM25/-1",
      "start_pst": "2025-10-20T23:00:00",
      "end_pst": "2025-10-21T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.0759129",
      "contrast": "4.2240871",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/NO2/-1",
      "start_pst": "2025-10-20T23:00:00",
      "end_pst": "2025-10-21T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.0782608695652173913043478260869565217391304347826",
      "contrast": "4.2217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/NO2/-1",
      "start_pst": "2025-10-20T23:00:00",
      "end_pst": "2025-10-21T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "12.6135511",
      "contrast": "7.2864489",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/NO2/-1",
      "start_pst": "2025-10-20T23:00:00",
      "end_pst": "2025-10-21T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "12.6",
      "contrast": "7.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/NO2/-1",
      "start_pst": "2025-10-20T23:00:00",
      "end_pst": "2025-10-21T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.6521855625",
      "contrast": "2.8478144375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/PM25/+0",
      "start_pst": "2025-10-21T00:00:00",
      "end_pst": "2025-10-22T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.6541666666666666666666666666666666666666666666667",
      "contrast": "2.8458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/PM25/+0",
      "start_pst": "2025-10-21T00:00:00",
      "end_pst": "2025-10-22T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "5.9988579869565217391304347826086956521739130434783",
      "contrast": "4.3011420130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/NO2/+0",
      "start_pst": "2025-10-21T00:00:00",
      "end_pst": "2025-10-22T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "6.0",
      "contrast": "4.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/NO2/+0",
      "start_pst": "2025-10-21T00:00:00",
      "end_pst": "2025-10-22T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "12.6135511",
      "contrast": "7.2864489",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/NO2/+0",
      "start_pst": "2025-10-21T00:00:00",
      "end_pst": "2025-10-22T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "12.6",
      "contrast": "7.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/NO2/+0",
      "start_pst": "2025-10-21T00:00:00",
      "end_pst": "2025-10-22T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.7216861041666666666666666666666666666666666666667",
      "contrast": "2.7783138958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/PM25/+1",
      "start_pst": "2025-10-21T01:00:00",
      "end_pst": "2025-10-22T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.725",
      "contrast": "2.775",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/PM25/+1",
      "start_pst": "2025-10-21T01:00:00",
      "end_pst": "2025-10-22T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "5.8691727608695652173913043478260869565217391304348",
      "contrast": "4.4308272391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/NO2/+1",
      "start_pst": "2025-10-21T01:00:00",
      "end_pst": "2025-10-22T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.3",
      "town": "5.8695652173913043478260869565217391304347826086957",
      "contrast": "4.4304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/NO2/+1",
      "start_pst": "2025-10-21T01:00:00",
      "end_pst": "2025-10-22T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "12.6135511",
      "contrast": "7.2864489",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/NO2/+1",
      "start_pst": "2025-10-21T01:00:00",
      "end_pst": "2025-10-22T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.9",
      "town": "12.6",
      "contrast": "7.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-21/NO2/+1",
      "start_pst": "2025-10-21T01:00:00",
      "end_pst": "2025-10-22T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/21/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "7.8396965916666666666666666666666666666666666666667",
      "contrast": "-0.3396965916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/PM25/-1",
      "start_pst": "2025-10-21T23:00:00",
      "end_pst": "2025-10-22T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "7.8458333333333333333333333333333333333333333333333",
      "contrast": "-0.3458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/PM25/-1",
      "start_pst": "2025-10-21T23:00:00",
      "end_pst": "2025-10-22T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "7.4151397260869565217391304347826086956521739130435",
      "contrast": "5.8848602739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/NO2/-1",
      "start_pst": "2025-10-21T23:00:00",
      "end_pst": "2025-10-22T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "7.4173913043478260869565217391304347826086956521739",
      "contrast": "5.8826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/NO2/-1",
      "start_pst": "2025-10-21T23:00:00",
      "end_pst": "2025-10-22T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.1",
      "town": "16.9376717",
      "contrast": "4.1623283",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/NO2/-1",
      "start_pst": "2025-10-21T23:00:00",
      "end_pst": "2025-10-22T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.1",
      "town": "16.9",
      "contrast": "4.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/NO2/-1",
      "start_pst": "2025-10-21T23:00:00",
      "end_pst": "2025-10-22T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "7.9539613916666666666666666666666666666666666666667",
      "contrast": "-0.4539613916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/PM25/+0",
      "start_pst": "2025-10-22T00:00:00",
      "end_pst": "2025-10-23T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "7.9583333333333333333333333333333333333333333333333",
      "contrast": "-0.4583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/PM25/+0",
      "start_pst": "2025-10-22T00:00:00",
      "end_pst": "2025-10-23T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "7.6795651565217391304347826086956521739130434782609",
      "contrast": "5.6204348434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/NO2/+0",
      "start_pst": "2025-10-22T00:00:00",
      "end_pst": "2025-10-23T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "7.6826086956521739130434782608695652173913043478261",
      "contrast": "5.6173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/NO2/+0",
      "start_pst": "2025-10-22T00:00:00",
      "end_pst": "2025-10-23T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.1",
      "town": "16.9376717",
      "contrast": "4.1623283",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/NO2/+0",
      "start_pst": "2025-10-22T00:00:00",
      "end_pst": "2025-10-23T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.1",
      "town": "16.9",
      "contrast": "4.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/NO2/+0",
      "start_pst": "2025-10-22T00:00:00",
      "end_pst": "2025-10-23T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "8.0417387666666666666666666666666666666666666666667",
      "contrast": "-0.5417387666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/PM25/+1",
      "start_pst": "2025-10-22T01:00:00",
      "end_pst": "2025-10-23T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "8.0458333333333333333333333333333333333333333333333",
      "contrast": "-0.5458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/PM25/+1",
      "start_pst": "2025-10-22T01:00:00",
      "end_pst": "2025-10-23T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "7.9295982090909090909090909090909090909090909090909",
      "contrast": "5.3704017909090909090909090909090909090909090909091",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/NO2/+1",
      "start_pst": "2025-10-22T01:00:00",
      "end_pst": "2025-10-23T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "7.9318181818181818181818181818181818181818181818182",
      "contrast": "5.3681818181818181818181818181818181818181818181818",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/NO2/+1",
      "start_pst": "2025-10-22T01:00:00",
      "end_pst": "2025-10-23T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.1",
      "town": "16.9376717",
      "contrast": "4.1623283",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/NO2/+1",
      "start_pst": "2025-10-22T01:00:00",
      "end_pst": "2025-10-23T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.1",
      "town": "16.9",
      "contrast": "4.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-22/NO2/+1",
      "start_pst": "2025-10-22T01:00:00",
      "end_pst": "2025-10-23T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/22/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "4.1785206083333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-23/PM25/-1",
      "start_pst": "2025-10-22T23:00:00",
      "end_pst": "2025-10-23T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "4.1875",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-23/PM25/-1",
      "start_pst": "2025-10-22T23:00:00",
      "end_pst": "2025-10-23T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "11.287760421739130434782608695652173913043478260870",
      "contrast": "2.912239578260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-23/NO2/-1",
      "start_pst": "2025-10-22T23:00:00",
      "end_pst": "2025-10-23T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "11.291304347826086956521739130434782608695652173913",
      "contrast": "2.908695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-23/NO2/-1",
      "start_pst": "2025-10-22T23:00:00",
      "end_pst": "2025-10-23T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.3",
      "town": "19.4751034",
      "contrast": "4.8248966",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-23/NO2/-1",
      "start_pst": "2025-10-22T23:00:00",
      "end_pst": "2025-10-23T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.3",
      "town": "19.5",
      "contrast": "4.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-23/NO2/-1",
      "start_pst": "2025-10-22T23:00:00",
      "end_pst": "2025-10-23T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "4.0744766041666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-23/PM25/+0",
      "start_pst": "2025-10-23T00:00:00",
      "end_pst": "2025-10-24T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "4.0833333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-23/PM25/+0",
      "start_pst": "2025-10-23T00:00:00",
      "end_pst": "2025-10-24T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "11.442545627272727272727272727272727272727272727273",
      "contrast": "2.757454372727272727272727272727272727272727272727",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-23/NO2/+0",
      "start_pst": "2025-10-23T00:00:00",
      "end_pst": "2025-10-24T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "11.445454545454545454545454545454545454545454545455",
      "contrast": "2.754545454545454545454545454545454545454545454545",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-23/NO2/+0",
      "start_pst": "2025-10-23T00:00:00",
      "end_pst": "2025-10-24T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.3",
      "town": "19.4751034",
      "contrast": "4.8248966",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-23/NO2/+0",
      "start_pst": "2025-10-23T00:00:00",
      "end_pst": "2025-10-24T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.3",
      "town": "19.5",
      "contrast": "4.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-23/NO2/+0",
      "start_pst": "2025-10-23T00:00:00",
      "end_pst": "2025-10-24T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "4.0216846125",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-23/PM25/+1",
      "start_pst": "2025-10-23T01:00:00",
      "end_pst": "2025-10-24T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "4.0291666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-23/PM25/+1",
      "start_pst": "2025-10-23T01:00:00",
      "end_pst": "2025-10-24T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "11.127671260869565217391304347826086956521739130435",
      "contrast": "3.072328739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-23/NO2/+1",
      "start_pst": "2025-10-23T01:00:00",
      "end_pst": "2025-10-24T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "11.130434782608695652173913043478260869565217391304",
      "contrast": "3.069565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-23/NO2/+1",
      "start_pst": "2025-10-23T01:00:00",
      "end_pst": "2025-10-24T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.3",
      "town": "19.4751034",
      "contrast": "4.8248966",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-23/NO2/+1",
      "start_pst": "2025-10-23T01:00:00",
      "end_pst": "2025-10-24T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.3",
      "town": "19.5",
      "contrast": "4.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-23/NO2/+1",
      "start_pst": "2025-10-23T01:00:00",
      "end_pst": "2025-10-24T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/23/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.8259557958333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-24/PM25/-1",
      "start_pst": "2025-10-23T23:00:00",
      "end_pst": "2025-10-24T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.8291666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-24/PM25/-1",
      "start_pst": "2025-10-23T23:00:00",
      "end_pst": "2025-10-24T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "8.0798490909090909090909090909090909090909090909091",
      "contrast": "4.4201509090909090909090909090909090909090909090909",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-24/NO2/-1",
      "start_pst": "2025-10-23T23:00:00",
      "end_pst": "2025-10-24T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "8.0727272727272727272727272727272727272727272727273",
      "contrast": "4.4272727272727272727272727272727272727272727272727",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-24/NO2/-1",
      "start_pst": "2025-10-23T23:00:00",
      "end_pst": "2025-10-24T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.5",
      "town": "16.1819439",
      "contrast": "10.3180561",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-24/NO2/-1",
      "start_pst": "2025-10-23T23:00:00",
      "end_pst": "2025-10-24T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.5",
      "town": "16.2",
      "contrast": "10.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-24/NO2/-1",
      "start_pst": "2025-10-23T23:00:00",
      "end_pst": "2025-10-24T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.773482175",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-24/PM25/+0",
      "start_pst": "2025-10-24T00:00:00",
      "end_pst": "2025-10-25T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.7791666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-24/PM25/+0",
      "start_pst": "2025-10-24T00:00:00",
      "end_pst": "2025-10-25T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "7.9008452173913043478260869565217391304347826086957",
      "contrast": "4.5991547826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-24/NO2/+0",
      "start_pst": "2025-10-24T00:00:00",
      "end_pst": "2025-10-25T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "7.8956521739130434782608695652173913043478260869565",
      "contrast": "4.6043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-24/NO2/+0",
      "start_pst": "2025-10-24T00:00:00",
      "end_pst": "2025-10-25T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.5",
      "town": "16.1819439",
      "contrast": "10.3180561",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-24/NO2/+0",
      "start_pst": "2025-10-24T00:00:00",
      "end_pst": "2025-10-25T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.5",
      "town": "16.2",
      "contrast": "10.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-24/NO2/+0",
      "start_pst": "2025-10-24T00:00:00",
      "end_pst": "2025-10-25T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.7572794958333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-24/PM25/+1",
      "start_pst": "2025-10-24T01:00:00",
      "end_pst": "2025-10-25T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.7625",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-24/PM25/+1",
      "start_pst": "2025-10-24T01:00:00",
      "end_pst": "2025-10-25T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "7.8383012521739130434782608695652173913043478260870",
      "contrast": "4.6616987478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-24/NO2/+1",
      "start_pst": "2025-10-24T01:00:00",
      "end_pst": "2025-10-25T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.5",
      "town": "7.8347826086956521739130434782608695652173913043478",
      "contrast": "4.6652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-24/NO2/+1",
      "start_pst": "2025-10-24T01:00:00",
      "end_pst": "2025-10-25T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.5",
      "town": "16.1819439",
      "contrast": "10.3180561",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-24/NO2/+1",
      "start_pst": "2025-10-24T01:00:00",
      "end_pst": "2025-10-25T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.5",
      "town": "16.2",
      "contrast": "10.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-24/NO2/+1",
      "start_pst": "2025-10-24T01:00:00",
      "end_pst": "2025-10-25T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/24/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.10927775",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-25/PM25/-1",
      "start_pst": "2025-10-24T23:00:00",
      "end_pst": "2025-10-25T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.0958333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-25/PM25/-1",
      "start_pst": "2025-10-24T23:00:00",
      "end_pst": "2025-10-25T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "2.0701311",
      "contrast": "11.6298689",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-25/NO2/-1",
      "start_pst": "2025-10-24T23:00:00",
      "end_pst": "2025-10-25T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "2.0826086956521739130434782608695652173913043478261",
      "contrast": "11.617391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-25/NO2/-1",
      "start_pst": "2025-10-24T23:00:00",
      "end_pst": "2025-10-25T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "3.96276",
      "contrast": "18.13724",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-25/NO2/-1",
      "start_pst": "2025-10-24T23:00:00",
      "end_pst": "2025-10-25T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "4",
      "contrast": "18.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-25/NO2/-1",
      "start_pst": "2025-10-24T23:00:00",
      "end_pst": "2025-10-25T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.0637577041666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-25/PM25/+0",
      "start_pst": "2025-10-25T00:00:00",
      "end_pst": "2025-10-26T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.05",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-25/PM25/+0",
      "start_pst": "2025-10-25T00:00:00",
      "end_pst": "2025-10-26T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "1.9717554043478260869565217391304347826086956521739",
      "contrast": "11.728244595652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-25/NO2/+0",
      "start_pst": "2025-10-25T00:00:00",
      "end_pst": "2025-10-26T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "1.9826086956521739130434782608695652173913043478261",
      "contrast": "11.717391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-25/NO2/+0",
      "start_pst": "2025-10-25T00:00:00",
      "end_pst": "2025-10-26T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "3.366133",
      "contrast": "18.733867",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-25/NO2/+0",
      "start_pst": "2025-10-25T00:00:00",
      "end_pst": "2025-10-26T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "3.4",
      "contrast": "18.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-25/NO2/+0",
      "start_pst": "2025-10-25T00:00:00",
      "end_pst": "2025-10-26T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.032810625",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-25/PM25/+1",
      "start_pst": "2025-10-25T01:00:00",
      "end_pst": "2025-10-26T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.0208333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-25/PM25/+1",
      "start_pst": "2025-10-25T01:00:00",
      "end_pst": "2025-10-26T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "1.9926834043478260869565217391304347826086956521739",
      "contrast": "11.707316595652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-25/NO2/+1",
      "start_pst": "2025-10-25T01:00:00",
      "end_pst": "2025-10-26T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "2.0",
      "contrast": "11.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-25/NO2/+1",
      "start_pst": "2025-10-25T01:00:00",
      "end_pst": "2025-10-26T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "3.366133",
      "contrast": "18.733867",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-25/NO2/+1",
      "start_pst": "2025-10-25T01:00:00",
      "end_pst": "2025-10-26T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "3.4",
      "contrast": "18.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-25/NO2/+1",
      "start_pst": "2025-10-25T01:00:00",
      "end_pst": "2025-10-26T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/25/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "4.8437511125",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-26/PM25/-1",
      "start_pst": "2025-10-25T23:00:00",
      "end_pst": "2025-10-26T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "4.85",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-26/PM25/-1",
      "start_pst": "2025-10-25T23:00:00",
      "end_pst": "2025-10-26T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.2",
      "town": "5.0344603782608695652173913043478260869565217391304",
      "contrast": "10.165539621739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-26/NO2/-1",
      "start_pst": "2025-10-25T23:00:00",
      "end_pst": "2025-10-26T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.2",
      "town": "5.0347826086956521739130434782608695652173913043478",
      "contrast": "10.165217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-26/NO2/-1",
      "start_pst": "2025-10-25T23:00:00",
      "end_pst": "2025-10-26T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.4",
      "town": "11.1282806",
      "contrast": "13.2717194",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-26/NO2/-1",
      "start_pst": "2025-10-25T23:00:00",
      "end_pst": "2025-10-26T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.4",
      "town": "11.1",
      "contrast": "13.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-26/NO2/-1",
      "start_pst": "2025-10-25T23:00:00",
      "end_pst": "2025-10-26T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "5.08155415",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-26/PM25/+0",
      "start_pst": "2025-10-26T00:00:00",
      "end_pst": "2025-10-27T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "5.0875",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-26/PM25/+0",
      "start_pst": "2025-10-26T00:00:00",
      "end_pst": "2025-10-27T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.2",
      "town": "5.1170734217391304347826086956521739130434782608696",
      "contrast": "10.082926578260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-26/NO2/+0",
      "start_pst": "2025-10-26T00:00:00",
      "end_pst": "2025-10-27T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.2",
      "town": "5.1173913043478260869565217391304347826086956521739",
      "contrast": "10.082608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-26/NO2/+0",
      "start_pst": "2025-10-26T00:00:00",
      "end_pst": "2025-10-27T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.4",
      "town": "11.1282806",
      "contrast": "13.2717194",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-26/NO2/+0",
      "start_pst": "2025-10-26T00:00:00",
      "end_pst": "2025-10-27T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.4",
      "town": "11.1",
      "contrast": "13.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-26/NO2/+0",
      "start_pst": "2025-10-26T00:00:00",
      "end_pst": "2025-10-27T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "5.1487593208333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-26/PM25/+1",
      "start_pst": "2025-10-26T01:00:00",
      "end_pst": "2025-10-27T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "5.1541666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-26/PM25/+1",
      "start_pst": "2025-10-26T01:00:00",
      "end_pst": "2025-10-27T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.2",
      "town": "5.1923423347826086956521739130434782608695652173913",
      "contrast": "10.007657665217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-26/NO2/+1",
      "start_pst": "2025-10-26T01:00:00",
      "end_pst": "2025-10-27T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.2",
      "town": "5.1956521739130434782608695652173913043478260869565",
      "contrast": "10.004347826086956521739130434782608695652173913044",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-26/NO2/+1",
      "start_pst": "2025-10-26T01:00:00",
      "end_pst": "2025-10-27T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.4",
      "town": "11.1282806",
      "contrast": "13.2717194",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-26/NO2/+1",
      "start_pst": "2025-10-26T01:00:00",
      "end_pst": "2025-10-27T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.4",
      "town": "11.1",
      "contrast": "13.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-26/NO2/+1",
      "start_pst": "2025-10-26T01:00:00",
      "end_pst": "2025-10-27T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/26/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.9082548625",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-27/PM25/-1",
      "start_pst": "2025-10-26T23:00:00",
      "end_pst": "2025-10-27T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.9166666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-27/PM25/-1",
      "start_pst": "2025-10-26T23:00:00",
      "end_pst": "2025-10-27T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "7.0641188043478260869565217391304347826086956521739",
      "contrast": "3.1358811956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-27/NO2/-1",
      "start_pst": "2025-10-26T23:00:00",
      "end_pst": "2025-10-27T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "7.0608695652173913043478260869565217391304347826087",
      "contrast": "3.1391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-27/NO2/-1",
      "start_pst": "2025-10-26T23:00:00",
      "end_pst": "2025-10-27T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "12.8043509",
      "contrast": "5.2956491",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-27/NO2/-1",
      "start_pst": "2025-10-26T23:00:00",
      "end_pst": "2025-10-27T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "12.8",
      "contrast": "5.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-27/NO2/-1",
      "start_pst": "2025-10-26T23:00:00",
      "end_pst": "2025-10-27T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.810889125",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-27/PM25/+0",
      "start_pst": "2025-10-27T00:00:00",
      "end_pst": "2025-10-28T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.8208333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-27/PM25/+0",
      "start_pst": "2025-10-27T00:00:00",
      "end_pst": "2025-10-28T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "7.0383894173913043478260869565217391304347826086957",
      "contrast": "3.1616105826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-27/NO2/+0",
      "start_pst": "2025-10-27T00:00:00",
      "end_pst": "2025-10-28T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "7.0347826086956521739130434782608695652173913043478",
      "contrast": "3.1652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-27/NO2/+0",
      "start_pst": "2025-10-27T00:00:00",
      "end_pst": "2025-10-28T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "12.8043509",
      "contrast": "5.2956491",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-27/NO2/+0",
      "start_pst": "2025-10-27T00:00:00",
      "end_pst": "2025-10-28T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "12.8",
      "contrast": "5.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-27/NO2/+0",
      "start_pst": "2025-10-27T00:00:00",
      "end_pst": "2025-10-28T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.7718237458333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-27/PM25/+1",
      "start_pst": "2025-10-27T01:00:00",
      "end_pst": "2025-10-28T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "3.7791666666666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-27/PM25/+1",
      "start_pst": "2025-10-27T01:00:00",
      "end_pst": "2025-10-28T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "6.9224766782608695652173913043478260869565217391304",
      "contrast": "3.2775233217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-27/NO2/+1",
      "start_pst": "2025-10-27T01:00:00",
      "end_pst": "2025-10-28T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.2",
      "town": "6.9173913043478260869565217391304347826086956521739",
      "contrast": "3.2826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-27/NO2/+1",
      "start_pst": "2025-10-27T01:00:00",
      "end_pst": "2025-10-28T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "12.8043509",
      "contrast": "5.2956491",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-27/NO2/+1",
      "start_pst": "2025-10-27T01:00:00",
      "end_pst": "2025-10-28T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.1",
      "town": "12.8",
      "contrast": "5.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-27/NO2/+1",
      "start_pst": "2025-10-27T01:00:00",
      "end_pst": "2025-10-28T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/27/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "2.6647244409090909090909090909090909090909090909091",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-28/PM25/-1",
      "start_pst": "2025-10-27T23:00:00",
      "end_pst": "2025-10-28T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "2.6681818181818181818181818181818181818181818181818",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-28/PM25/-1",
      "start_pst": "2025-10-27T23:00:00",
      "end_pst": "2025-10-28T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.6",
      "town": "3.3949779714285714285714285714285714285714285714286",
      "contrast": "9.2050220285714285714285714285714285714285714285714",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-28/NO2/-1",
      "start_pst": "2025-10-27T23:00:00",
      "end_pst": "2025-10-28T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.6",
      "town": "3.4047619047619047619047619047619047619047619047619",
      "contrast": "9.1952380952380952380952380952380952380952380952381",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-28/NO2/-1",
      "start_pst": "2025-10-27T23:00:00",
      "end_pst": "2025-10-28T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.0",
      "town": "6.4554958",
      "contrast": "17.5445042",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-28/NO2/-1",
      "start_pst": "2025-10-27T23:00:00",
      "end_pst": "2025-10-28T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.0",
      "town": "6.5",
      "contrast": "17.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-28/NO2/-1",
      "start_pst": "2025-10-27T23:00:00",
      "end_pst": "2025-10-28T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "2.5305662954545454545454545454545454545454545454545",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-28/PM25/+0",
      "start_pst": "2025-10-28T00:00:00",
      "end_pst": "2025-10-29T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "2.5318181818181818181818181818181818181818181818182",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-28/PM25/+0",
      "start_pst": "2025-10-28T00:00:00",
      "end_pst": "2025-10-29T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.6",
      "town": "3.3702656809523809523809523809523809523809523809524",
      "contrast": "9.2297343190476190476190476190476190476190476190476",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-28/NO2/+0",
      "start_pst": "2025-10-28T00:00:00",
      "end_pst": "2025-10-29T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.6",
      "town": "3.3809523809523809523809523809523809523809523809524",
      "contrast": "9.2190476190476190476190476190476190476190476190476",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-28/NO2/+0",
      "start_pst": "2025-10-28T00:00:00",
      "end_pst": "2025-10-29T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.0",
      "town": "6.4554958",
      "contrast": "17.5445042",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-28/NO2/+0",
      "start_pst": "2025-10-28T00:00:00",
      "end_pst": "2025-10-29T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.0",
      "town": "6.5",
      "contrast": "17.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-28/NO2/+0",
      "start_pst": "2025-10-28T00:00:00",
      "end_pst": "2025-10-29T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "2.47899875",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-28/PM25/+1",
      "start_pst": "2025-10-28T01:00:00",
      "end_pst": "2025-10-29T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "2.4818181818181818181818181818181818181818181818182",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-10-28/PM25/+1",
      "start_pst": "2025-10-28T01:00:00",
      "end_pst": "2025-10-29T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.6",
      "town": "3.4103940142857142857142857142857142857142857142857",
      "contrast": "9.1896059857142857142857142857142857142857142857143",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-28/NO2/+1",
      "start_pst": "2025-10-28T01:00:00",
      "end_pst": "2025-10-29T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.6",
      "town": "3.4238095238095238095238095238095238095238095238095",
      "contrast": "9.1761904761904761904761904761904761904761904761905",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-28/NO2/+1",
      "start_pst": "2025-10-28T01:00:00",
      "end_pst": "2025-10-29T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.0",
      "town": "6.4554958",
      "contrast": "17.5445042",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-28/NO2/+1",
      "start_pst": "2025-10-28T01:00:00",
      "end_pst": "2025-10-29T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.0",
      "town": "6.5",
      "contrast": "17.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-28/NO2/+1",
      "start_pst": "2025-10-28T01:00:00",
      "end_pst": "2025-10-29T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/28/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.5652092541666666666666666666666666666666666666667",
      "contrast": "2.7347907458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/PM25/-1",
      "start_pst": "2025-10-28T23:00:00",
      "end_pst": "2025-10-29T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.5708333333333333333333333333333333333333333333333",
      "contrast": "2.7291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/PM25/-1",
      "start_pst": "2025-10-28T23:00:00",
      "end_pst": "2025-10-29T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "6.8557405",
      "contrast": "3.8442595",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/NO2/-1",
      "start_pst": "2025-10-28T23:00:00",
      "end_pst": "2025-10-29T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "6.8695652173913043478260869565217391304347826086957",
      "contrast": "3.8304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/NO2/-1",
      "start_pst": "2025-10-28T23:00:00",
      "end_pst": "2025-10-29T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "13.4643364",
      "contrast": "5.0356636",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/NO2/-1",
      "start_pst": "2025-10-28T23:00:00",
      "end_pst": "2025-10-29T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "13.5",
      "contrast": "5.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/NO2/-1",
      "start_pst": "2025-10-28T23:00:00",
      "end_pst": "2025-10-29T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.5614010458333333333333333333333333333333333333333",
      "contrast": "2.7385989541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/PM25/+0",
      "start_pst": "2025-10-29T00:00:00",
      "end_pst": "2025-10-30T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.5666666666666666666666666666666666666666666666667",
      "contrast": "2.7333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/PM25/+0",
      "start_pst": "2025-10-29T00:00:00",
      "end_pst": "2025-10-30T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "6.7898027173913043478260869565217391304347826086957",
      "contrast": "3.9101972826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/NO2/+0",
      "start_pst": "2025-10-29T00:00:00",
      "end_pst": "2025-10-30T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "6.8043478260869565217391304347826086956521739130435",
      "contrast": "3.8956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/NO2/+0",
      "start_pst": "2025-10-29T00:00:00",
      "end_pst": "2025-10-30T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "13.4643364",
      "contrast": "5.0356636",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/NO2/+0",
      "start_pst": "2025-10-29T00:00:00",
      "end_pst": "2025-10-30T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "13.5",
      "contrast": "5.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/NO2/+0",
      "start_pst": "2025-10-29T00:00:00",
      "end_pst": "2025-10-30T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.5096470041666666666666666666666666666666666666667",
      "contrast": "2.7903529958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/PM25/+1",
      "start_pst": "2025-10-29T01:00:00",
      "end_pst": "2025-10-30T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.5166666666666666666666666666666666666666666666667",
      "contrast": "2.7833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/PM25/+1",
      "start_pst": "2025-10-29T01:00:00",
      "end_pst": "2025-10-30T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "6.6958525434782608695652173913043478260869565217391",
      "contrast": "4.0041474565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/NO2/+1",
      "start_pst": "2025-10-29T01:00:00",
      "end_pst": "2025-10-30T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "6.7086956521739130434782608695652173913043478260870",
      "contrast": "3.9913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/NO2/+1",
      "start_pst": "2025-10-29T01:00:00",
      "end_pst": "2025-10-30T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "13.4643364",
      "contrast": "5.0356636",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/NO2/+1",
      "start_pst": "2025-10-29T01:00:00",
      "end_pst": "2025-10-30T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "13.5",
      "contrast": "5.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-29/NO2/+1",
      "start_pst": "2025-10-29T01:00:00",
      "end_pst": "2025-10-30T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/29/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.69600615",
      "contrast": "2.80399385",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/PM25/-1",
      "start_pst": "2025-10-29T23:00:00",
      "end_pst": "2025-10-30T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.6958333333333333333333333333333333333333333333333",
      "contrast": "2.8041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/PM25/-1",
      "start_pst": "2025-10-29T23:00:00",
      "end_pst": "2025-10-30T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.4803185304347826086956521739130434782608695652174",
      "contrast": "3.9196814695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/NO2/-1",
      "start_pst": "2025-10-29T23:00:00",
      "end_pst": "2025-10-30T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.4826086956521739130434782608695652173913043478261",
      "contrast": "3.9173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/NO2/-1",
      "start_pst": "2025-10-29T23:00:00",
      "end_pst": "2025-10-30T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "11.6193438",
      "contrast": "1.6806562",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/NO2/-1",
      "start_pst": "2025-10-29T23:00:00",
      "end_pst": "2025-10-30T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "11.6",
      "contrast": "1.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/NO2/-1",
      "start_pst": "2025-10-29T23:00:00",
      "end_pst": "2025-10-30T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.8380785708333333333333333333333333333333333333333",
      "contrast": "2.6619214291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/PM25/+0",
      "start_pst": "2025-10-30T00:00:00",
      "end_pst": "2025-10-31T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.8375",
      "contrast": "2.6625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/PM25/+0",
      "start_pst": "2025-10-30T00:00:00",
      "end_pst": "2025-10-31T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.5877189217391304347826086956521739130434782608696",
      "contrast": "3.8122810782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/NO2/+0",
      "start_pst": "2025-10-30T00:00:00",
      "end_pst": "2025-10-31T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.5869565217391304347826086956521739130434782608696",
      "contrast": "3.8130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/NO2/+0",
      "start_pst": "2025-10-30T00:00:00",
      "end_pst": "2025-10-31T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "11.6193438",
      "contrast": "1.6806562",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/NO2/+0",
      "start_pst": "2025-10-30T00:00:00",
      "end_pst": "2025-10-31T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "11.6",
      "contrast": "1.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/NO2/+0",
      "start_pst": "2025-10-30T00:00:00",
      "end_pst": "2025-10-31T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "3.033620525",
      "contrast": "2.466379475",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/PM25/+1",
      "start_pst": "2025-10-30T01:00:00",
      "end_pst": "2025-10-31T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "3.0333333333333333333333333333333333333333333333333",
      "contrast": "2.4666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/PM25/+1",
      "start_pst": "2025-10-30T01:00:00",
      "end_pst": "2025-10-31T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.6854985739130434782608695652173913043478260869565",
      "contrast": "3.7145014260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/NO2/+1",
      "start_pst": "2025-10-30T01:00:00",
      "end_pst": "2025-10-31T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.6826086956521739130434782608695652173913043478261",
      "contrast": "3.7173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/NO2/+1",
      "start_pst": "2025-10-30T01:00:00",
      "end_pst": "2025-10-31T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "11.6193438",
      "contrast": "1.6806562",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/NO2/+1",
      "start_pst": "2025-10-30T01:00:00",
      "end_pst": "2025-10-31T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.3",
      "town": "11.6",
      "contrast": "1.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-30/NO2/+1",
      "start_pst": "2025-10-30T01:00:00",
      "end_pst": "2025-10-31T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/30/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-31",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.3663100875",
      "contrast": "2.4336899125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/PM25/-1",
      "start_pst": "2025-10-30T23:00:00",
      "end_pst": "2025-10-31T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-31",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.3666666666666666666666666666666666666666666666667",
      "contrast": "2.4333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/PM25/-1",
      "start_pst": "2025-10-30T23:00:00",
      "end_pst": "2025-10-31T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-31",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "7.8963838043478260869565217391304347826086956521739",
      "contrast": "5.1036161956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/NO2/-1",
      "start_pst": "2025-10-30T23:00:00",
      "end_pst": "2025-10-31T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-31",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "7.9043478260869565217391304347826086956521739130435",
      "contrast": "5.0956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/NO2/-1",
      "start_pst": "2025-10-30T23:00:00",
      "end_pst": "2025-10-31T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.8",
      "town": "20.2094841",
      "contrast": "6.5905159",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/NO2/-1",
      "start_pst": "2025-10-30T23:00:00",
      "end_pst": "2025-10-31T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.8",
      "town": "20.2",
      "contrast": "6.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/NO2/-1",
      "start_pst": "2025-10-30T23:00:00",
      "end_pst": "2025-10-31T23:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.3227302083333333333333333333333333333333333333333",
      "contrast": "2.4772697916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/PM25/+0",
      "start_pst": "2025-10-31T00:00:00",
      "end_pst": "2025-11-01T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.325",
      "contrast": "2.475",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/PM25/+0",
      "start_pst": "2025-10-31T00:00:00",
      "end_pst": "2025-11-01T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-31",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "8.0929367130434782608695652173913043478260869565217",
      "contrast": "4.9070632869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/NO2/+0",
      "start_pst": "2025-10-31T00:00:00",
      "end_pst": "2025-11-01T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-31",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "8.1043478260869565217391304347826086956521739130435",
      "contrast": "4.8956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/NO2/+0",
      "start_pst": "2025-10-31T00:00:00",
      "end_pst": "2025-11-01T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.8",
      "town": "20.2094841",
      "contrast": "6.5905159",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/NO2/+0",
      "start_pst": "2025-10-31T00:00:00",
      "end_pst": "2025-11-01T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.8",
      "town": "20.2",
      "contrast": "6.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/NO2/+0",
      "start_pst": "2025-10-31T00:00:00",
      "end_pst": "2025-11-01T00:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.2172190875",
      "contrast": "2.5827809125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/PM25/+1",
      "start_pst": "2025-10-31T01:00:00",
      "end_pst": "2025-11-01T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.2166666666666666666666666666666666666666666666667",
      "contrast": "2.5833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/PM25/+1",
      "start_pst": "2025-10-31T01:00:00",
      "end_pst": "2025-11-01T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "pm25_24h_ug_m3",
        "value_column": 1
      }
    },
    {
      "date": "2025-10-31",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "8.2316585304347826086956521739130434782608695652174",
      "contrast": "4.7683414695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/NO2/+1",
      "start_pst": "2025-10-31T01:00:00",
      "end_pst": "2025-11-01T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-31",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": "8.2434782608695652173913043478260869565217391304348",
      "contrast": "4.7565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/NO2/+1",
      "start_pst": "2025-10-31T01:00:00",
      "end_pst": "2025-11-01T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_24h_ppb",
        "value_column": 4
      }
    },
    {
      "date": "2025-10-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.8",
      "town": "20.2094841",
      "contrast": "6.5905159",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/NO2/+1",
      "start_pst": "2025-10-31T01:00:00",
      "end_pst": "2025-11-01T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-10-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.8",
      "town": "20.2",
      "contrast": "6.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-10-31/NO2/+1",
      "start_pst": "2025-10-31T01:00:00",
      "end_pst": "2025-11-01T01:00:00",
      "onsite_source": {
        "month": "2025-10",
        "date_printed": "10/31/2025",
        "table": "B.1",
        "pdf_page": 31,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/01/WLNG-AQMS-Monthly-Report-2025-10-October-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-may2025/seasonal-report-check/2025-10.pdf",
        "source_pdf_sha256": "dcbf8dcc86408446225231495a376922682b4fd40bbfff235f98a9dce55e3dcd",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-10/table-b1-air-native.csv",
        "source_csv_sha256": "095cf1867848c34ca4795bdbcc28d3d2791a7a5ae31fe5f6c8ad7242f98ac4e8",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "2.6387464916666666666666666666666666666666666666667",
      "contrast": "3.1612535083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/PM25/-1",
      "start_pst": "2025-10-31T23:00:00",
      "end_pst": "2025-11-01T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "2.6333333333333333333333333333333333333333333333333",
      "contrast": "3.1666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/PM25/-1",
      "start_pst": "2025-10-31T23:00:00",
      "end_pst": "2025-11-01T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.8556992217391304347826086956521739130434782608696",
      "contrast": "7.1443007782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/NO2/-1",
      "start_pst": "2025-10-31T23:00:00",
      "end_pst": "2025-11-01T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.8478260869565217391304347826086956521739130434783",
      "contrast": "7.1521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/NO2/-1",
      "start_pst": "2025-10-31T23:00:00",
      "end_pst": "2025-11-01T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.0",
      "town": "10.202754",
      "contrast": "13.797246",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/NO2/-1",
      "start_pst": "2025-10-31T23:00:00",
      "end_pst": "2025-11-01T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.0",
      "town": "10.2",
      "contrast": "13.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/NO2/-1",
      "start_pst": "2025-10-31T23:00:00",
      "end_pst": "2025-11-01T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "2.5931014541666666666666666666666666666666666666667",
      "contrast": "3.2068985458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/PM25/+0",
      "start_pst": "2025-11-01T00:00:00",
      "end_pst": "2025-11-02T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "2.5875",
      "contrast": "3.2125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/PM25/+0",
      "start_pst": "2025-11-01T00:00:00",
      "end_pst": "2025-11-02T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.6045724869565217391304347826086956521739130434783",
      "contrast": "7.3954275130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/NO2/+0",
      "start_pst": "2025-11-01T00:00:00",
      "end_pst": "2025-11-02T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.5956521739130434782608695652173913043478260869565",
      "contrast": "7.4043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/NO2/+0",
      "start_pst": "2025-11-01T00:00:00",
      "end_pst": "2025-11-02T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.0",
      "town": "10.202754",
      "contrast": "13.797246",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/NO2/+0",
      "start_pst": "2025-11-01T00:00:00",
      "end_pst": "2025-11-02T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.0",
      "town": "10.2",
      "contrast": "13.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/NO2/+0",
      "start_pst": "2025-11-01T00:00:00",
      "end_pst": "2025-11-02T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "2.622060125",
      "contrast": "3.177939875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/PM25/+1",
      "start_pst": "2025-11-01T01:00:00",
      "end_pst": "2025-11-02T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "2.6166666666666666666666666666666666666666666666667",
      "contrast": "3.1833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/PM25/+1",
      "start_pst": "2025-11-01T01:00:00",
      "end_pst": "2025-11-02T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.4385194521739130434782608695652173913043478260870",
      "contrast": "7.5614805478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/NO2/+1",
      "start_pst": "2025-11-01T01:00:00",
      "end_pst": "2025-11-02T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.4304347826086956521739130434782608695652173913043",
      "contrast": "7.5695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/NO2/+1",
      "start_pst": "2025-11-01T01:00:00",
      "end_pst": "2025-11-02T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.0",
      "town": "10.202754",
      "contrast": "13.797246",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/NO2/+1",
      "start_pst": "2025-11-01T01:00:00",
      "end_pst": "2025-11-02T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.0",
      "town": "10.2",
      "contrast": "13.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-01/NO2/+1",
      "start_pst": "2025-11-01T01:00:00",
      "end_pst": "2025-11-02T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "5.5190769958333333333333333333333333333333333333333",
      "contrast": "0.0809230041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/PM25/-1",
      "start_pst": "2025-11-01T23:00:00",
      "end_pst": "2025-11-02T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "5.525",
      "contrast": "0.075",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/PM25/-1",
      "start_pst": "2025-11-01T23:00:00",
      "end_pst": "2025-11-02T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "5.7051836260869565217391304347826086956521739130435",
      "contrast": "3.9948163739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/NO2/-1",
      "start_pst": "2025-11-01T23:00:00",
      "end_pst": "2025-11-02T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "5.7130434782608695652173913043478260869565217391304",
      "contrast": "3.9869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/NO2/-1",
      "start_pst": "2025-11-01T23:00:00",
      "end_pst": "2025-11-02T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "11.7279806",
      "contrast": "5.8720194",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/NO2/-1",
      "start_pst": "2025-11-01T23:00:00",
      "end_pst": "2025-11-02T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "11.7",
      "contrast": "5.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/NO2/-1",
      "start_pst": "2025-11-01T23:00:00",
      "end_pst": "2025-11-02T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "5.4873284916666666666666666666666666666666666666667",
      "contrast": "0.1126715083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/PM25/+0",
      "start_pst": "2025-11-02T00:00:00",
      "end_pst": "2025-11-03T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "5.4916666666666666666666666666666666666666666666667",
      "contrast": "0.1083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/PM25/+0",
      "start_pst": "2025-11-02T00:00:00",
      "end_pst": "2025-11-03T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "5.6835037565217391304347826086956521739130434782609",
      "contrast": "4.0164962434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/NO2/+0",
      "start_pst": "2025-11-02T00:00:00",
      "end_pst": "2025-11-03T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "5.6913043478260869565217391304347826086956521739130",
      "contrast": "4.0086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/NO2/+0",
      "start_pst": "2025-11-02T00:00:00",
      "end_pst": "2025-11-03T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "11.7279806",
      "contrast": "5.8720194",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/NO2/+0",
      "start_pst": "2025-11-02T00:00:00",
      "end_pst": "2025-11-03T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "11.7",
      "contrast": "5.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/NO2/+0",
      "start_pst": "2025-11-02T00:00:00",
      "end_pst": "2025-11-03T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "5.4463891083333333333333333333333333333333333333333",
      "contrast": "0.1536108916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/PM25/+1",
      "start_pst": "2025-11-02T01:00:00",
      "end_pst": "2025-11-03T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.6",
      "town": "5.45",
      "contrast": "0.15",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/PM25/+1",
      "start_pst": "2025-11-02T01:00:00",
      "end_pst": "2025-11-03T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "5.6612267130434782608695652173913043478260869565217",
      "contrast": "4.0387732869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/NO2/+1",
      "start_pst": "2025-11-02T01:00:00",
      "end_pst": "2025-11-03T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.7",
      "town": "5.6695652173913043478260869565217391304347826086957",
      "contrast": "4.0304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/NO2/+1",
      "start_pst": "2025-11-02T01:00:00",
      "end_pst": "2025-11-03T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "11.7279806",
      "contrast": "5.8720194",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/NO2/+1",
      "start_pst": "2025-11-02T01:00:00",
      "end_pst": "2025-11-03T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "11.7",
      "contrast": "5.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-02/NO2/+1",
      "start_pst": "2025-11-02T01:00:00",
      "end_pst": "2025-11-03T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.6092337791666666666666666666666666666666666666667",
      "contrast": "2.2907662208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/PM25/-1",
      "start_pst": "2025-11-02T23:00:00",
      "end_pst": "2025-11-03T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.6041666666666666666666666666666666666666666666667",
      "contrast": "2.2958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/PM25/-1",
      "start_pst": "2025-11-02T23:00:00",
      "end_pst": "2025-11-03T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "3.9150081434782608695652173913043478260869565217391",
      "contrast": "3.4849918565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/NO2/-1",
      "start_pst": "2025-11-02T23:00:00",
      "end_pst": "2025-11-03T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "3.9173913043478260869565217391304347826086956521739",
      "contrast": "3.4826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/NO2/-1",
      "start_pst": "2025-11-02T23:00:00",
      "end_pst": "2025-11-03T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "13.4280252",
      "contrast": "-0.3280252",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/NO2/-1",
      "start_pst": "2025-11-02T23:00:00",
      "end_pst": "2025-11-03T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "13.4",
      "contrast": "-0.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/NO2/-1",
      "start_pst": "2025-11-02T23:00:00",
      "end_pst": "2025-11-03T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.809399775",
      "contrast": "2.090600225",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/PM25/+0",
      "start_pst": "2025-11-03T00:00:00",
      "end_pst": "2025-11-04T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.8041666666666666666666666666666666666666666666667",
      "contrast": "2.0958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/PM25/+0",
      "start_pst": "2025-11-03T00:00:00",
      "end_pst": "2025-11-04T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.0040304913043478260869565217391304347826086956522",
      "contrast": "3.3959695086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/NO2/+0",
      "start_pst": "2025-11-03T00:00:00",
      "end_pst": "2025-11-04T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.0043478260869565217391304347826086956521739130435",
      "contrast": "3.3956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/NO2/+0",
      "start_pst": "2025-11-03T00:00:00",
      "end_pst": "2025-11-04T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "13.4280252",
      "contrast": "-0.3280252",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/NO2/+0",
      "start_pst": "2025-11-03T00:00:00",
      "end_pst": "2025-11-04T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "13.4",
      "contrast": "-0.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/NO2/+0",
      "start_pst": "2025-11-03T00:00:00",
      "end_pst": "2025-11-04T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.9225563625",
      "contrast": "1.9774436375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/PM25/+1",
      "start_pst": "2025-11-03T01:00:00",
      "end_pst": "2025-11-04T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "3.9208333333333333333333333333333333333333333333333",
      "contrast": "1.9791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/PM25/+1",
      "start_pst": "2025-11-03T01:00:00",
      "end_pst": "2025-11-04T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.0841858826086956521739130434782608695652173913043",
      "contrast": "3.3158141173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/NO2/+1",
      "start_pst": "2025-11-03T01:00:00",
      "end_pst": "2025-11-04T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.4",
      "town": "4.0826086956521739130434782608695652173913043478261",
      "contrast": "3.3173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/NO2/+1",
      "start_pst": "2025-11-03T01:00:00",
      "end_pst": "2025-11-04T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "13.4280252",
      "contrast": "-0.3280252",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/NO2/+1",
      "start_pst": "2025-11-03T01:00:00",
      "end_pst": "2025-11-04T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.1",
      "town": "13.4",
      "contrast": "-0.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-03/NO2/+1",
      "start_pst": "2025-11-03T01:00:00",
      "end_pst": "2025-11-04T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.2062389904761904761904761904761904761904761904762",
      "contrast": "2.0937610095238095238095238095238095238095238095238",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-04/PM25/-1",
      "start_pst": "2025-11-03T23:00:00",
      "end_pst": "2025-11-04T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.2095238095238095238095238095238095238095238095238",
      "contrast": "2.0904761904761904761904761904761904761904761904762",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-04/PM25/-1",
      "start_pst": "2025-11-03T23:00:00",
      "end_pst": "2025-11-04T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-11-04/NO2/-1",
      "start_pst": "2025-11-03T23:00:00",
      "end_pst": "2025-11-04T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-11-04/NO2/-1",
      "start_pst": "2025-11-03T23:00:00",
      "end_pst": "2025-11-04T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-11-04/NO2/-1",
      "start_pst": "2025-11-03T23:00:00",
      "end_pst": "2025-11-04T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-11-04/NO2/-1",
      "start_pst": "2025-11-03T23:00:00",
      "end_pst": "2025-11-04T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.9745617095238095238095238095238095238095238095238",
      "contrast": "2.3254382904761904761904761904761904761904761904762",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-04/PM25/+0",
      "start_pst": "2025-11-04T00:00:00",
      "end_pst": "2025-11-05T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.9809523809523809523809523809523809523809523809524",
      "contrast": "2.3190476190476190476190476190476190476190476190476",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-04/PM25/+0",
      "start_pst": "2025-11-04T00:00:00",
      "end_pst": "2025-11-05T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-11-04/NO2/+0",
      "start_pst": "2025-11-04T00:00:00",
      "end_pst": "2025-11-05T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-11-04/NO2/+0",
      "start_pst": "2025-11-04T00:00:00",
      "end_pst": "2025-11-05T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-11-04/NO2/+0",
      "start_pst": "2025-11-04T00:00:00",
      "end_pst": "2025-11-05T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-11-04/NO2/+0",
      "start_pst": "2025-11-04T00:00:00",
      "end_pst": "2025-11-05T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.7908368095238095238095238095238095238095238095238",
      "contrast": "2.5091631904761904761904761904761904761904761904762",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-04/PM25/+1",
      "start_pst": "2025-11-04T01:00:00",
      "end_pst": "2025-11-05T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.7952380952380952380952380952380952380952380952381",
      "contrast": "2.5047619047619047619047619047619047619047619047619",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 21,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-04/PM25/+1",
      "start_pst": "2025-11-04T01:00:00",
      "end_pst": "2025-11-05T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-11-04/NO2/+1",
      "start_pst": "2025-11-04T01:00:00",
      "end_pst": "2025-11-05T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-11-04/NO2/+1",
      "start_pst": "2025-11-04T01:00:00",
      "end_pst": "2025-11-05T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-11-04/NO2/+1",
      "start_pst": "2025-11-04T01:00:00",
      "end_pst": "2025-11-05T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.0",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-11-04/NO2/+1",
      "start_pst": "2025-11-04T01:00:00",
      "end_pst": "2025-11-05T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.2376975791666666666666666666666666666666666666667",
      "contrast": "4.3623024208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/PM25/-1",
      "start_pst": "2025-11-04T23:00:00",
      "end_pst": "2025-11-05T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.25",
      "contrast": "4.35",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/PM25/-1",
      "start_pst": "2025-11-04T23:00:00",
      "end_pst": "2025-11-05T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.8",
      "town": "4.8292614842105263157894736842105263157894736842105",
      "contrast": "9.9707385157894736842105263157894736842105263157895",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/NO2/-1",
      "start_pst": "2025-11-04T23:00:00",
      "end_pst": "2025-11-05T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.8",
      "town": "4.8368421052631578947368421052631578947368421052632",
      "contrast": "9.9631578947368421052631578947368421052631578947368",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/NO2/-1",
      "start_pst": "2025-11-04T23:00:00",
      "end_pst": "2025-11-05T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.2",
      "town": "13.4612684",
      "contrast": "12.7387316",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/NO2/-1",
      "start_pst": "2025-11-04T23:00:00",
      "end_pst": "2025-11-05T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.2",
      "town": "13.5",
      "contrast": "12.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/NO2/-1",
      "start_pst": "2025-11-04T23:00:00",
      "end_pst": "2025-11-05T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.1829810375",
      "contrast": "4.4170189625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/PM25/+0",
      "start_pst": "2025-11-05T00:00:00",
      "end_pst": "2025-11-06T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.1958333333333333333333333333333333333333333333333",
      "contrast": "4.4041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/PM25/+0",
      "start_pst": "2025-11-05T00:00:00",
      "end_pst": "2025-11-06T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.8",
      "town": "5.0121507421052631578947368421052631578947368421053",
      "contrast": "9.7878492578947368421052631578947368421052631578947",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/NO2/+0",
      "start_pst": "2025-11-05T00:00:00",
      "end_pst": "2025-11-06T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.8",
      "town": "5.0157894736842105263157894736842105263157894736842",
      "contrast": "9.7842105263157894736842105263157894736842105263158",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/NO2/+0",
      "start_pst": "2025-11-05T00:00:00",
      "end_pst": "2025-11-06T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.2",
      "town": "13.4612684",
      "contrast": "12.7387316",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/NO2/+0",
      "start_pst": "2025-11-05T00:00:00",
      "end_pst": "2025-11-06T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.2",
      "town": "13.5",
      "contrast": "12.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/NO2/+0",
      "start_pst": "2025-11-05T00:00:00",
      "end_pst": "2025-11-06T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.1404282",
      "contrast": "4.4595718",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/PM25/+1",
      "start_pst": "2025-11-05T01:00:00",
      "end_pst": "2025-11-06T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "2.1541666666666666666666666666666666666666666666667",
      "contrast": "4.4458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/PM25/+1",
      "start_pst": "2025-11-05T01:00:00",
      "end_pst": "2025-11-06T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.8",
      "town": "5.1934180157894736842105263157894736842105263157895",
      "contrast": "9.6065819842105263157894736842105263157894736842105",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/NO2/+1",
      "start_pst": "2025-11-05T01:00:00",
      "end_pst": "2025-11-06T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.8",
      "town": "5.1947368421052631578947368421052631578947368421053",
      "contrast": "9.6052631578947368421052631578947368421052631578947",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/NO2/+1",
      "start_pst": "2025-11-05T01:00:00",
      "end_pst": "2025-11-06T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.2",
      "town": "13.4612684",
      "contrast": "12.7387316",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/NO2/+1",
      "start_pst": "2025-11-05T01:00:00",
      "end_pst": "2025-11-06T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.2",
      "town": "13.5",
      "contrast": "12.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 19,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-05/NO2/+1",
      "start_pst": "2025-11-05T01:00:00",
      "end_pst": "2025-11-06T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "2.2715562666666666666666666666666666666666666666667",
      "contrast": "4.0284437333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/PM25/-1",
      "start_pst": "2025-11-05T23:00:00",
      "end_pst": "2025-11-06T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "2.2625",
      "contrast": "4.0375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/PM25/-1",
      "start_pst": "2025-11-05T23:00:00",
      "end_pst": "2025-11-06T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "7.4351027304347826086956521739130434782608695652174",
      "contrast": "10.164897269565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/NO2/-1",
      "start_pst": "2025-11-05T23:00:00",
      "end_pst": "2025-11-06T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "7.4304347826086956521739130434782608695652173913043",
      "contrast": "10.169565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/NO2/-1",
      "start_pst": "2025-11-05T23:00:00",
      "end_pst": "2025-11-06T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "16.944212",
      "contrast": "16.955788",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/NO2/-1",
      "start_pst": "2025-11-05T23:00:00",
      "end_pst": "2025-11-06T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "16.9",
      "contrast": "17.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/NO2/-1",
      "start_pst": "2025-11-05T23:00:00",
      "end_pst": "2025-11-06T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "2.3000892666666666666666666666666666666666666666667",
      "contrast": "3.9999107333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/PM25/+0",
      "start_pst": "2025-11-06T00:00:00",
      "end_pst": "2025-11-07T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "2.2875",
      "contrast": "4.0125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/PM25/+0",
      "start_pst": "2025-11-06T00:00:00",
      "end_pst": "2025-11-07T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "7.3661267826086956521739130434782608695652173913043",
      "contrast": "10.233873217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/NO2/+0",
      "start_pst": "2025-11-06T00:00:00",
      "end_pst": "2025-11-07T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "7.3652173913043478260869565217391304347826086956522",
      "contrast": "10.234782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/NO2/+0",
      "start_pst": "2025-11-06T00:00:00",
      "end_pst": "2025-11-07T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "16.944212",
      "contrast": "16.955788",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/NO2/+0",
      "start_pst": "2025-11-06T00:00:00",
      "end_pst": "2025-11-07T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "16.9",
      "contrast": "17.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/NO2/+0",
      "start_pst": "2025-11-06T00:00:00",
      "end_pst": "2025-11-07T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "2.3488211875",
      "contrast": "3.9511788125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/PM25/+1",
      "start_pst": "2025-11-06T01:00:00",
      "end_pst": "2025-11-07T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "2.3333333333333333333333333333333333333333333333333",
      "contrast": "3.9666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/PM25/+1",
      "start_pst": "2025-11-06T01:00:00",
      "end_pst": "2025-11-07T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "7.2772704695652173913043478260869565217391304347826",
      "contrast": "10.322729530434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/NO2/+1",
      "start_pst": "2025-11-06T01:00:00",
      "end_pst": "2025-11-07T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.6",
      "town": "7.2782608695652173913043478260869565217391304347826",
      "contrast": "10.321739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/NO2/+1",
      "start_pst": "2025-11-06T01:00:00",
      "end_pst": "2025-11-07T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "16.944212",
      "contrast": "16.955788",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/NO2/+1",
      "start_pst": "2025-11-06T01:00:00",
      "end_pst": "2025-11-07T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "33.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "33.9",
      "town": "16.9",
      "contrast": "17.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-06/NO2/+1",
      "start_pst": "2025-11-06T01:00:00",
      "end_pst": "2025-11-07T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "6.3586030791666666666666666666666666666666666666667",
      "contrast": "-1.3586030791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/PM25/-1",
      "start_pst": "2025-11-06T23:00:00",
      "end_pst": "2025-11-07T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "6.3541666666666666666666666666666666666666666666667",
      "contrast": "-1.3541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/PM25/-1",
      "start_pst": "2025-11-06T23:00:00",
      "end_pst": "2025-11-07T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.0979265086956521739130434782608695652173913043478",
      "contrast": "1.8020734913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/NO2/-1",
      "start_pst": "2025-11-06T23:00:00",
      "end_pst": "2025-11-07T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.1",
      "contrast": "1.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/NO2/-1",
      "start_pst": "2025-11-06T23:00:00",
      "end_pst": "2025-11-07T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "14.4042368",
      "contrast": "5.9957632",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/NO2/-1",
      "start_pst": "2025-11-06T23:00:00",
      "end_pst": "2025-11-07T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "14.4",
      "contrast": "6.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/NO2/-1",
      "start_pst": "2025-11-06T23:00:00",
      "end_pst": "2025-11-07T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "6.4908099125",
      "contrast": "-1.4908099125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/PM25/+0",
      "start_pst": "2025-11-07T00:00:00",
      "end_pst": "2025-11-08T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "6.4875",
      "contrast": "-1.4875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/PM25/+0",
      "start_pst": "2025-11-07T00:00:00",
      "end_pst": "2025-11-08T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.2098870652173913043478260869565217391304347826087",
      "contrast": "1.6901129347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/NO2/+0",
      "start_pst": "2025-11-07T00:00:00",
      "end_pst": "2025-11-08T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.2086956521739130434782608695652173913043478260870",
      "contrast": "1.6913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/NO2/+0",
      "start_pst": "2025-11-07T00:00:00",
      "end_pst": "2025-11-08T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "14.4042368",
      "contrast": "5.9957632",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/NO2/+0",
      "start_pst": "2025-11-07T00:00:00",
      "end_pst": "2025-11-08T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "14.4",
      "contrast": "6.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/NO2/+0",
      "start_pst": "2025-11-07T00:00:00",
      "end_pst": "2025-11-08T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "6.5378519541666666666666666666666666666666666666667",
      "contrast": "-1.5378519541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/PM25/+1",
      "start_pst": "2025-11-07T01:00:00",
      "end_pst": "2025-11-08T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "6.5375",
      "contrast": "-1.5375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/PM25/+1",
      "start_pst": "2025-11-07T01:00:00",
      "end_pst": "2025-11-08T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.2815406304347826086956521739130434782608695652174",
      "contrast": "1.6184593695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/NO2/+1",
      "start_pst": "2025-11-07T01:00:00",
      "end_pst": "2025-11-08T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.9",
      "town": "8.2782608695652173913043478260869565217391304347826",
      "contrast": "1.6217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/NO2/+1",
      "start_pst": "2025-11-07T01:00:00",
      "end_pst": "2025-11-08T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "14.4042368",
      "contrast": "5.9957632",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/NO2/+1",
      "start_pst": "2025-11-07T01:00:00",
      "end_pst": "2025-11-08T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "14.4",
      "contrast": "6.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-07/NO2/+1",
      "start_pst": "2025-11-07T01:00:00",
      "end_pst": "2025-11-08T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "2.0960306875",
      "contrast": "5.2039693125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/PM25/-1",
      "start_pst": "2025-11-07T23:00:00",
      "end_pst": "2025-11-08T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "2.0958333333333333333333333333333333333333333333333",
      "contrast": "5.2041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/PM25/-1",
      "start_pst": "2025-11-07T23:00:00",
      "end_pst": "2025-11-08T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "2.0145065391304347826086956521739130434782608695652",
      "contrast": "8.9854934608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/NO2/-1",
      "start_pst": "2025-11-07T23:00:00",
      "end_pst": "2025-11-08T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "2.0173913043478260869565217391304347826086956521739",
      "contrast": "8.9826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/NO2/-1",
      "start_pst": "2025-11-07T23:00:00",
      "end_pst": "2025-11-08T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.6",
      "town": "5.1368189",
      "contrast": "14.4631811",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/NO2/-1",
      "start_pst": "2025-11-07T23:00:00",
      "end_pst": "2025-11-08T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.6",
      "town": "5.1",
      "contrast": "14.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/NO2/-1",
      "start_pst": "2025-11-07T23:00:00",
      "end_pst": "2025-11-08T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "1.9628676041666666666666666666666666666666666666667",
      "contrast": "5.3371323958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/PM25/+0",
      "start_pst": "2025-11-08T00:00:00",
      "end_pst": "2025-11-09T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "1.9625",
      "contrast": "5.3375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/PM25/+0",
      "start_pst": "2025-11-08T00:00:00",
      "end_pst": "2025-11-09T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "1.8208910652173913043478260869565217391304347826087",
      "contrast": "9.1791089347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/NO2/+0",
      "start_pst": "2025-11-08T00:00:00",
      "end_pst": "2025-11-09T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "1.8260869565217391304347826086956521739130434782609",
      "contrast": "9.1739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/NO2/+0",
      "start_pst": "2025-11-08T00:00:00",
      "end_pst": "2025-11-09T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.6",
      "town": "3.825666",
      "contrast": "15.774334",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/NO2/+0",
      "start_pst": "2025-11-08T00:00:00",
      "end_pst": "2025-11-09T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.6",
      "town": "3.8",
      "contrast": "15.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/NO2/+0",
      "start_pst": "2025-11-08T00:00:00",
      "end_pst": "2025-11-09T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "1.8814321416666666666666666666666666666666666666667",
      "contrast": "5.4185678583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/PM25/+1",
      "start_pst": "2025-11-08T01:00:00",
      "end_pst": "2025-11-09T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "1.8791666666666666666666666666666666666666666666667",
      "contrast": "5.4208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/PM25/+1",
      "start_pst": "2025-11-08T01:00:00",
      "end_pst": "2025-11-09T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "1.6881010217391304347826086956521739130434782608696",
      "contrast": "9.3118989782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/NO2/+1",
      "start_pst": "2025-11-08T01:00:00",
      "end_pst": "2025-11-09T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "1.6956521739130434782608695652173913043478260869565",
      "contrast": "9.3043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/NO2/+1",
      "start_pst": "2025-11-08T01:00:00",
      "end_pst": "2025-11-09T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.6",
      "town": "3.546978",
      "contrast": "16.053022",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/NO2/+1",
      "start_pst": "2025-11-08T01:00:00",
      "end_pst": "2025-11-09T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.6",
      "town": "3.5",
      "contrast": "16.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-08/NO2/+1",
      "start_pst": "2025-11-08T01:00:00",
      "end_pst": "2025-11-09T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "4.0019588958333333333333333333333333333333333333333",
      "contrast": "4.6980411041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/PM25/-1",
      "start_pst": "2025-11-08T23:00:00",
      "end_pst": "2025-11-09T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "3.9958333333333333333333333333333333333333333333333",
      "contrast": "4.7041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/PM25/-1",
      "start_pst": "2025-11-08T23:00:00",
      "end_pst": "2025-11-09T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "3.5062148217391304347826086956521739130434782608696",
      "contrast": "7.6937851782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/NO2/-1",
      "start_pst": "2025-11-08T23:00:00",
      "end_pst": "2025-11-09T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "3.5043478260869565217391304347826086956521739130435",
      "contrast": "7.6956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/NO2/-1",
      "start_pst": "2025-11-08T23:00:00",
      "end_pst": "2025-11-09T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "11.4935789",
      "contrast": "10.6064211",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/NO2/-1",
      "start_pst": "2025-11-08T23:00:00",
      "end_pst": "2025-11-09T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "11.5",
      "contrast": "10.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/NO2/-1",
      "start_pst": "2025-11-08T23:00:00",
      "end_pst": "2025-11-09T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "3.9821628958333333333333333333333333333333333333333",
      "contrast": "4.7178371041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/PM25/+0",
      "start_pst": "2025-11-09T00:00:00",
      "end_pst": "2025-11-10T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "3.975",
      "contrast": "4.725",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/PM25/+0",
      "start_pst": "2025-11-09T00:00:00",
      "end_pst": "2025-11-10T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "3.6153207347826086956521739130434782608695652173913",
      "contrast": "7.5846792652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/NO2/+0",
      "start_pst": "2025-11-09T00:00:00",
      "end_pst": "2025-11-10T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "3.6130434782608695652173913043478260869565217391304",
      "contrast": "7.5869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/NO2/+0",
      "start_pst": "2025-11-09T00:00:00",
      "end_pst": "2025-11-10T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "11.4935789",
      "contrast": "10.6064211",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/NO2/+0",
      "start_pst": "2025-11-09T00:00:00",
      "end_pst": "2025-11-10T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "11.5",
      "contrast": "10.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/NO2/+0",
      "start_pst": "2025-11-09T00:00:00",
      "end_pst": "2025-11-10T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "3.9936472291666666666666666666666666666666666666667",
      "contrast": "4.7063527708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/PM25/+1",
      "start_pst": "2025-11-09T01:00:00",
      "end_pst": "2025-11-10T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "3.9875",
      "contrast": "4.7125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/PM25/+1",
      "start_pst": "2025-11-09T01:00:00",
      "end_pst": "2025-11-10T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "3.7439684695652173913043478260869565217391304347826",
      "contrast": "7.4560315304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/NO2/+1",
      "start_pst": "2025-11-09T01:00:00",
      "end_pst": "2025-11-10T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.2",
      "town": "3.7391304347826086956521739130434782608695652173913",
      "contrast": "7.4608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/NO2/+1",
      "start_pst": "2025-11-09T01:00:00",
      "end_pst": "2025-11-10T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "11.4935789",
      "contrast": "10.6064211",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/NO2/+1",
      "start_pst": "2025-11-09T01:00:00",
      "end_pst": "2025-11-10T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.1",
      "town": "11.5",
      "contrast": "10.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-09/NO2/+1",
      "start_pst": "2025-11-09T01:00:00",
      "end_pst": "2025-11-10T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "3.0157993833333333333333333333333333333333333333333",
      "contrast": "5.5842006166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/PM25/-1",
      "start_pst": "2025-11-09T23:00:00",
      "end_pst": "2025-11-10T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "3.0",
      "contrast": "5.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/PM25/-1",
      "start_pst": "2025-11-09T23:00:00",
      "end_pst": "2025-11-10T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "5.8821828739130434782608695652173913043478260869565",
      "contrast": "9.6178171260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/NO2/-1",
      "start_pst": "2025-11-09T23:00:00",
      "end_pst": "2025-11-10T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "5.8826086956521739130434782608695652173913043478261",
      "contrast": "9.6173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/NO2/-1",
      "start_pst": "2025-11-09T23:00:00",
      "end_pst": "2025-11-10T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.5",
      "town": "13.600399",
      "contrast": "12.899601",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/NO2/-1",
      "start_pst": "2025-11-09T23:00:00",
      "end_pst": "2025-11-10T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.5",
      "town": "13.6",
      "contrast": "12.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/NO2/-1",
      "start_pst": "2025-11-09T23:00:00",
      "end_pst": "2025-11-10T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "3.1781711333333333333333333333333333333333333333333",
      "contrast": "5.4218288666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/PM25/+0",
      "start_pst": "2025-11-10T00:00:00",
      "end_pst": "2025-11-11T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "3.1625",
      "contrast": "5.4375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/PM25/+0",
      "start_pst": "2025-11-10T00:00:00",
      "end_pst": "2025-11-11T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "5.9037158347826086956521739130434782608695652173913",
      "contrast": "9.5962841652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/NO2/+0",
      "start_pst": "2025-11-10T00:00:00",
      "end_pst": "2025-11-11T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "5.9043478260869565217391304347826086956521739130435",
      "contrast": "9.5956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/NO2/+0",
      "start_pst": "2025-11-10T00:00:00",
      "end_pst": "2025-11-11T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.5",
      "town": "13.600399",
      "contrast": "12.899601",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/NO2/+0",
      "start_pst": "2025-11-10T00:00:00",
      "end_pst": "2025-11-11T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.5",
      "town": "13.6",
      "contrast": "12.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/NO2/+0",
      "start_pst": "2025-11-10T00:00:00",
      "end_pst": "2025-11-11T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "3.3234750916666666666666666666666666666666666666667",
      "contrast": "5.2765249083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/PM25/+1",
      "start_pst": "2025-11-10T01:00:00",
      "end_pst": "2025-11-11T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "3.3083333333333333333333333333333333333333333333333",
      "contrast": "5.2916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/PM25/+1",
      "start_pst": "2025-11-10T01:00:00",
      "end_pst": "2025-11-11T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "5.9115381",
      "contrast": "9.5884619",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/NO2/+1",
      "start_pst": "2025-11-10T01:00:00",
      "end_pst": "2025-11-11T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "5.9130434782608695652173913043478260869565217391304",
      "contrast": "9.5869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/NO2/+1",
      "start_pst": "2025-11-10T01:00:00",
      "end_pst": "2025-11-11T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.5",
      "town": "13.600399",
      "contrast": "12.899601",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/NO2/+1",
      "start_pst": "2025-11-10T01:00:00",
      "end_pst": "2025-11-11T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.5",
      "town": "13.6",
      "contrast": "12.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-10/NO2/+1",
      "start_pst": "2025-11-10T01:00:00",
      "end_pst": "2025-11-11T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.9231565666666666666666666666666666666666666666667",
      "contrast": "0.5768434333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/PM25/-1",
      "start_pst": "2025-11-10T23:00:00",
      "end_pst": "2025-11-11T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.9208333333333333333333333333333333333333333333333",
      "contrast": "0.5791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/PM25/-1",
      "start_pst": "2025-11-10T23:00:00",
      "end_pst": "2025-11-11T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "3.2469865086956521739130434782608695652173913043478",
      "contrast": "4.9530134913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/NO2/-1",
      "start_pst": "2025-11-10T23:00:00",
      "end_pst": "2025-11-11T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "3.2478260869565217391304347826086956521739130434783",
      "contrast": "4.9521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/NO2/-1",
      "start_pst": "2025-11-10T23:00:00",
      "end_pst": "2025-11-11T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.7",
      "town": "5.0422969",
      "contrast": "13.6577031",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/NO2/-1",
      "start_pst": "2025-11-10T23:00:00",
      "end_pst": "2025-11-11T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.7",
      "town": "5",
      "contrast": "13.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/NO2/-1",
      "start_pst": "2025-11-10T23:00:00",
      "end_pst": "2025-11-11T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.8414128208333333333333333333333333333333333333333",
      "contrast": "0.6585871791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/PM25/+0",
      "start_pst": "2025-11-11T00:00:00",
      "end_pst": "2025-11-12T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.8416666666666666666666666666666666666666666666667",
      "contrast": "0.6583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/PM25/+0",
      "start_pst": "2025-11-11T00:00:00",
      "end_pst": "2025-11-12T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "3.1207568521739130434782608695652173913043478260870",
      "contrast": "5.0792431478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/NO2/+0",
      "start_pst": "2025-11-11T00:00:00",
      "end_pst": "2025-11-12T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "3.1217391304347826086956521739130434782608695652174",
      "contrast": "5.0782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/NO2/+0",
      "start_pst": "2025-11-11T00:00:00",
      "end_pst": "2025-11-12T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.7",
      "town": "5.0422969",
      "contrast": "13.6577031",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/NO2/+0",
      "start_pst": "2025-11-11T00:00:00",
      "end_pst": "2025-11-12T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.7",
      "town": "5",
      "contrast": "13.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/NO2/+0",
      "start_pst": "2025-11-11T00:00:00",
      "end_pst": "2025-11-12T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.7104823666666666666666666666666666666666666666667",
      "contrast": "0.7895176333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/PM25/+1",
      "start_pst": "2025-11-11T01:00:00",
      "end_pst": "2025-11-12T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "4.7083333333333333333333333333333333333333333333333",
      "contrast": "0.7916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/PM25/+1",
      "start_pst": "2025-11-11T01:00:00",
      "end_pst": "2025-11-12T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "2.9808875478260869565217391304347826086956521739130",
      "contrast": "5.2191124521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/NO2/+1",
      "start_pst": "2025-11-11T01:00:00",
      "end_pst": "2025-11-12T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "2.9826086956521739130434782608695652173913043478261",
      "contrast": "5.2173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/NO2/+1",
      "start_pst": "2025-11-11T01:00:00",
      "end_pst": "2025-11-12T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.7",
      "town": "5.0422969",
      "contrast": "13.6577031",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/NO2/+1",
      "start_pst": "2025-11-11T01:00:00",
      "end_pst": "2025-11-12T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.7",
      "town": "5",
      "contrast": "13.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-11/NO2/+1",
      "start_pst": "2025-11-11T01:00:00",
      "end_pst": "2025-11-12T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.3930536541666666666666666666666666666666666666667",
      "contrast": "4.1069463458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/PM25/-1",
      "start_pst": "2025-11-11T23:00:00",
      "end_pst": "2025-11-12T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.3958333333333333333333333333333333333333333333333",
      "contrast": "4.1041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/PM25/-1",
      "start_pst": "2025-11-11T23:00:00",
      "end_pst": "2025-11-12T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.6",
      "town": "2.6394778869565217391304347826086956521739130434783",
      "contrast": "7.9605221130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/NO2/-1",
      "start_pst": "2025-11-11T23:00:00",
      "end_pst": "2025-11-12T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.6",
      "town": "2.6434782608695652173913043478260869565217391304348",
      "contrast": "7.9565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/NO2/-1",
      "start_pst": "2025-11-11T23:00:00",
      "end_pst": "2025-11-12T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.3",
      "town": "5.6574521",
      "contrast": "17.6425479",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/NO2/-1",
      "start_pst": "2025-11-11T23:00:00",
      "end_pst": "2025-11-12T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.3",
      "town": "5.7",
      "contrast": "17.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/NO2/-1",
      "start_pst": "2025-11-11T23:00:00",
      "end_pst": "2025-11-12T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.308912275",
      "contrast": "4.191087725",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/PM25/+0",
      "start_pst": "2025-11-12T00:00:00",
      "end_pst": "2025-11-13T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.3125",
      "contrast": "4.1875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/PM25/+0",
      "start_pst": "2025-11-12T00:00:00",
      "end_pst": "2025-11-13T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.6",
      "town": "2.6540114956521739130434782608695652173913043478261",
      "contrast": "7.9459885043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/NO2/+0",
      "start_pst": "2025-11-12T00:00:00",
      "end_pst": "2025-11-13T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.6",
      "town": "2.6565217391304347826086956521739130434782608695652",
      "contrast": "7.9434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/NO2/+0",
      "start_pst": "2025-11-12T00:00:00",
      "end_pst": "2025-11-13T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.3",
      "town": "5.6574521",
      "contrast": "17.6425479",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/NO2/+0",
      "start_pst": "2025-11-12T00:00:00",
      "end_pst": "2025-11-13T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.3",
      "town": "5.7",
      "contrast": "17.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/NO2/+0",
      "start_pst": "2025-11-12T00:00:00",
      "end_pst": "2025-11-13T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.2751454375",
      "contrast": "4.2248545625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/PM25/+1",
      "start_pst": "2025-11-12T01:00:00",
      "end_pst": "2025-11-13T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.2791666666666666666666666666666666666666666666667",
      "contrast": "4.2208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/PM25/+1",
      "start_pst": "2025-11-12T01:00:00",
      "end_pst": "2025-11-13T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.6",
      "town": "2.6564447130434782608695652173913043478260869565217",
      "contrast": "7.9435552869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/NO2/+1",
      "start_pst": "2025-11-12T01:00:00",
      "end_pst": "2025-11-13T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.6",
      "town": "2.6565217391304347826086956521739130434782608695652",
      "contrast": "7.9434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/NO2/+1",
      "start_pst": "2025-11-12T01:00:00",
      "end_pst": "2025-11-13T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.3",
      "town": "5.6574521",
      "contrast": "17.6425479",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/NO2/+1",
      "start_pst": "2025-11-12T01:00:00",
      "end_pst": "2025-11-13T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "23.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "23.3",
      "town": "5.7",
      "contrast": "17.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-12/NO2/+1",
      "start_pst": "2025-11-12T01:00:00",
      "end_pst": "2025-11-13T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "1.4755384291666666666666666666666666666666666666667",
      "contrast": "4.7244615708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/PM25/-1",
      "start_pst": "2025-11-12T23:00:00",
      "end_pst": "2025-11-13T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "1.4666666666666666666666666666666666666666666666667",
      "contrast": "4.7333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/PM25/-1",
      "start_pst": "2025-11-12T23:00:00",
      "end_pst": "2025-11-13T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "5.9610018739130434782608695652173913043478260869565",
      "contrast": "11.738998126086956521739130434782608695652173913044",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/NO2/-1",
      "start_pst": "2025-11-12T23:00:00",
      "end_pst": "2025-11-13T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "5.9652173913043478260869565217391304347826086956522",
      "contrast": "11.734782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/NO2/-1",
      "start_pst": "2025-11-12T23:00:00",
      "end_pst": "2025-11-13T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.8",
      "town": "16.5478859",
      "contrast": "8.2521141",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/NO2/-1",
      "start_pst": "2025-11-12T23:00:00",
      "end_pst": "2025-11-13T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.8",
      "town": "16.5",
      "contrast": "8.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/NO2/-1",
      "start_pst": "2025-11-12T23:00:00",
      "end_pst": "2025-11-13T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "1.5689363875",
      "contrast": "4.6310636125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/PM25/+0",
      "start_pst": "2025-11-13T00:00:00",
      "end_pst": "2025-11-14T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "1.5583333333333333333333333333333333333333333333333",
      "contrast": "4.6416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/PM25/+0",
      "start_pst": "2025-11-13T00:00:00",
      "end_pst": "2025-11-14T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "6.2229807521739130434782608695652173913043478260870",
      "contrast": "11.477019247826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/NO2/+0",
      "start_pst": "2025-11-13T00:00:00",
      "end_pst": "2025-11-14T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "6.2260869565217391304347826086956521739130434782609",
      "contrast": "11.473913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/NO2/+0",
      "start_pst": "2025-11-13T00:00:00",
      "end_pst": "2025-11-14T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.8",
      "town": "16.5478859",
      "contrast": "8.2521141",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/NO2/+0",
      "start_pst": "2025-11-13T00:00:00",
      "end_pst": "2025-11-14T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.8",
      "town": "16.5",
      "contrast": "8.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/NO2/+0",
      "start_pst": "2025-11-13T00:00:00",
      "end_pst": "2025-11-14T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "1.8216364375",
      "contrast": "4.3783635625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/PM25/+1",
      "start_pst": "2025-11-13T01:00:00",
      "end_pst": "2025-11-14T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "1.8125",
      "contrast": "4.3875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/PM25/+1",
      "start_pst": "2025-11-13T01:00:00",
      "end_pst": "2025-11-14T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "6.4693048869565217391304347826086956521739130434783",
      "contrast": "11.230695113043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/NO2/+1",
      "start_pst": "2025-11-13T01:00:00",
      "end_pst": "2025-11-14T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.7",
      "town": "6.4739130434782608695652173913043478260869565217391",
      "contrast": "11.226086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/NO2/+1",
      "start_pst": "2025-11-13T01:00:00",
      "end_pst": "2025-11-14T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.8",
      "town": "16.5478859",
      "contrast": "8.2521141",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/NO2/+1",
      "start_pst": "2025-11-13T01:00:00",
      "end_pst": "2025-11-14T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.8",
      "town": "16.5",
      "contrast": "8.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-13/NO2/+1",
      "start_pst": "2025-11-13T01:00:00",
      "end_pst": "2025-11-14T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "7.1864632",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-14/PM25/-1",
      "start_pst": "2025-11-13T23:00:00",
      "end_pst": "2025-11-14T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "7.1875",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-14/PM25/-1",
      "start_pst": "2025-11-13T23:00:00",
      "end_pst": "2025-11-14T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "10.4368695",
      "contrast": "2.9631305",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-14/NO2/-1",
      "start_pst": "2025-11-13T23:00:00",
      "end_pst": "2025-11-14T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "10.426086956521739130434782608695652173913043478261",
      "contrast": "2.973913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-14/NO2/-1",
      "start_pst": "2025-11-13T23:00:00",
      "end_pst": "2025-11-14T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.0",
      "town": "17.4196701",
      "contrast": "0.5803299",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-14/NO2/-1",
      "start_pst": "2025-11-13T23:00:00",
      "end_pst": "2025-11-14T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.0",
      "town": "17.4",
      "contrast": "0.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-14/NO2/-1",
      "start_pst": "2025-11-13T23:00:00",
      "end_pst": "2025-11-14T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "7.1602265791666666666666666666666666666666666666667",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-14/PM25/+0",
      "start_pst": "2025-11-14T00:00:00",
      "end_pst": "2025-11-15T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "7.1625",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-14/PM25/+0",
      "start_pst": "2025-11-14T00:00:00",
      "end_pst": "2025-11-15T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "10.306621095652173913043478260869565217391304347826",
      "contrast": "3.093378904347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-14/NO2/+0",
      "start_pst": "2025-11-14T00:00:00",
      "end_pst": "2025-11-15T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "10.295652173913043478260869565217391304347826086957",
      "contrast": "3.104347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-14/NO2/+0",
      "start_pst": "2025-11-14T00:00:00",
      "end_pst": "2025-11-15T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.0",
      "town": "17.4196701",
      "contrast": "0.5803299",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-14/NO2/+0",
      "start_pst": "2025-11-14T00:00:00",
      "end_pst": "2025-11-15T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.0",
      "town": "17.4",
      "contrast": "0.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-14/NO2/+0",
      "start_pst": "2025-11-14T00:00:00",
      "end_pst": "2025-11-15T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "6.9448704083333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-14/PM25/+1",
      "start_pst": "2025-11-14T01:00:00",
      "end_pst": "2025-11-15T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "\u2013b",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "b",
      "onsite": null,
      "town": "6.9458333333333333333333333333333333333333333333333",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-14/PM25/+1",
      "start_pst": "2025-11-14T01:00:00",
      "end_pst": "2025-11-15T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "10.483525231818181818181818181818181818181818181818",
      "contrast": "2.916474768181818181818181818181818181818181818182",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-14/NO2/+1",
      "start_pst": "2025-11-14T01:00:00",
      "end_pst": "2025-11-15T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "10.472727272727272727272727272727272727272727272727",
      "contrast": "2.927272727272727272727272727272727272727272727273",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-14/NO2/+1",
      "start_pst": "2025-11-14T01:00:00",
      "end_pst": "2025-11-15T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.0",
      "town": "17.4196701",
      "contrast": "0.5803299",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-14/NO2/+1",
      "start_pst": "2025-11-14T01:00:00",
      "end_pst": "2025-11-15T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.0",
      "town": "17.4",
      "contrast": "0.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-14/NO2/+1",
      "start_pst": "2025-11-14T01:00:00",
      "end_pst": "2025-11-15T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.3924547416666666666666666666666666666666666666667",
      "contrast": "3.1075452583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/PM25/-1",
      "start_pst": "2025-11-14T23:00:00",
      "end_pst": "2025-11-15T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.3916666666666666666666666666666666666666666666667",
      "contrast": "3.1083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/PM25/-1",
      "start_pst": "2025-11-14T23:00:00",
      "end_pst": "2025-11-15T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "2.6994584086956521739130434782608695652173913043478",
      "contrast": "6.9005415913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/NO2/-1",
      "start_pst": "2025-11-14T23:00:00",
      "end_pst": "2025-11-15T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "2.6869565217391304347826086956521739130434782608696",
      "contrast": "6.9130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/NO2/-1",
      "start_pst": "2025-11-14T23:00:00",
      "end_pst": "2025-11-15T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "7.7168221",
      "contrast": "7.3831779",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/NO2/-1",
      "start_pst": "2025-11-14T23:00:00",
      "end_pst": "2025-11-15T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "7.7",
      "contrast": "7.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/NO2/-1",
      "start_pst": "2025-11-14T23:00:00",
      "end_pst": "2025-11-15T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.3262869875",
      "contrast": "3.1737130125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/PM25/+0",
      "start_pst": "2025-11-15T00:00:00",
      "end_pst": "2025-11-16T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.325",
      "contrast": "3.175",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/PM25/+0",
      "start_pst": "2025-11-15T00:00:00",
      "end_pst": "2025-11-16T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "2.6335633863636363636363636363636363636363636363636",
      "contrast": "6.9664366136363636363636363636363636363636363636364",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/NO2/+0",
      "start_pst": "2025-11-15T00:00:00",
      "end_pst": "2025-11-16T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "2.6227272727272727272727272727272727272727272727273",
      "contrast": "6.9772727272727272727272727272727272727272727272727",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/NO2/+0",
      "start_pst": "2025-11-15T00:00:00",
      "end_pst": "2025-11-16T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "7.7168221",
      "contrast": "7.3831779",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/NO2/+0",
      "start_pst": "2025-11-15T00:00:00",
      "end_pst": "2025-11-16T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "7.7",
      "contrast": "7.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/NO2/+0",
      "start_pst": "2025-11-15T00:00:00",
      "end_pst": "2025-11-16T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.289475025",
      "contrast": "3.210524975",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/PM25/+1",
      "start_pst": "2025-11-15T01:00:00",
      "end_pst": "2025-11-16T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "2.2875",
      "contrast": "3.2125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/PM25/+1",
      "start_pst": "2025-11-15T01:00:00",
      "end_pst": "2025-11-16T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "2.5542721956521739130434782608695652173913043478261",
      "contrast": "7.0457278043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/NO2/+1",
      "start_pst": "2025-11-15T01:00:00",
      "end_pst": "2025-11-16T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "2.5434782608695652173913043478260869565217391304348",
      "contrast": "7.0565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/NO2/+1",
      "start_pst": "2025-11-15T01:00:00",
      "end_pst": "2025-11-16T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "7.7168221",
      "contrast": "7.3831779",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/NO2/+1",
      "start_pst": "2025-11-15T01:00:00",
      "end_pst": "2025-11-16T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "7.7",
      "contrast": "7.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-15/NO2/+1",
      "start_pst": "2025-11-15T01:00:00",
      "end_pst": "2025-11-16T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "1.9736342958333333333333333333333333333333333333333",
      "contrast": "3.1263657041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/PM25/-1",
      "start_pst": "2025-11-15T23:00:00",
      "end_pst": "2025-11-16T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "1.975",
      "contrast": "3.125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/PM25/-1",
      "start_pst": "2025-11-15T23:00:00",
      "end_pst": "2025-11-16T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "2.3240790545454545454545454545454545454545454545455",
      "contrast": "8.6759209454545454545454545454545454545454545454545",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/NO2/-1",
      "start_pst": "2025-11-15T23:00:00",
      "end_pst": "2025-11-16T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "2.3227272727272727272727272727272727272727272727273",
      "contrast": "8.6772727272727272727272727272727272727272727272727",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/NO2/-1",
      "start_pst": "2025-11-15T23:00:00",
      "end_pst": "2025-11-16T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "7.417902",
      "contrast": "18.582098",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/NO2/-1",
      "start_pst": "2025-11-15T23:00:00",
      "end_pst": "2025-11-16T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "7.4",
      "contrast": "18.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/NO2/-1",
      "start_pst": "2025-11-15T23:00:00",
      "end_pst": "2025-11-16T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.0165044208333333333333333333333333333333333333333",
      "contrast": "3.0834955791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/PM25/+0",
      "start_pst": "2025-11-16T00:00:00",
      "end_pst": "2025-11-17T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.0166666666666666666666666666666666666666666666667",
      "contrast": "3.0833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/PM25/+0",
      "start_pst": "2025-11-16T00:00:00",
      "end_pst": "2025-11-17T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "2.3032582695652173913043478260869565217391304347826",
      "contrast": "8.6967417304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/NO2/+0",
      "start_pst": "2025-11-16T00:00:00",
      "end_pst": "2025-11-17T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "2.3",
      "contrast": "8.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/NO2/+0",
      "start_pst": "2025-11-16T00:00:00",
      "end_pst": "2025-11-17T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "7.417902",
      "contrast": "18.582098",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/NO2/+0",
      "start_pst": "2025-11-16T00:00:00",
      "end_pst": "2025-11-17T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "7.4",
      "contrast": "18.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/NO2/+0",
      "start_pst": "2025-11-16T00:00:00",
      "end_pst": "2025-11-17T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.0961692125",
      "contrast": "3.0038307875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/PM25/+1",
      "start_pst": "2025-11-16T01:00:00",
      "end_pst": "2025-11-17T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "2.1",
      "contrast": "3.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/PM25/+1",
      "start_pst": "2025-11-16T01:00:00",
      "end_pst": "2025-11-17T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "2.3986157913043478260869565217391304347826086956522",
      "contrast": "8.6013842086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/NO2/+1",
      "start_pst": "2025-11-16T01:00:00",
      "end_pst": "2025-11-17T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "2.3956521739130434782608695652173913043478260869565",
      "contrast": "8.6043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/NO2/+1",
      "start_pst": "2025-11-16T01:00:00",
      "end_pst": "2025-11-17T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "7.417902",
      "contrast": "18.582098",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/NO2/+1",
      "start_pst": "2025-11-16T01:00:00",
      "end_pst": "2025-11-17T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "26.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "26.0",
      "town": "7.4",
      "contrast": "18.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-16/NO2/+1",
      "start_pst": "2025-11-16T01:00:00",
      "end_pst": "2025-11-17T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "2.5092350625",
      "contrast": "2.6907649375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/PM25/-1",
      "start_pst": "2025-11-16T23:00:00",
      "end_pst": "2025-11-17T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "2.5166666666666666666666666666666666666666666666667",
      "contrast": "2.6833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/PM25/-1",
      "start_pst": "2025-11-16T23:00:00",
      "end_pst": "2025-11-17T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "4.5810106565217391304347826086956521739130434782609",
      "contrast": "7.3189893434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/NO2/-1",
      "start_pst": "2025-11-16T23:00:00",
      "end_pst": "2025-11-17T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "4.5782608695652173913043478260869565217391304347826",
      "contrast": "7.3217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/NO2/-1",
      "start_pst": "2025-11-16T23:00:00",
      "end_pst": "2025-11-17T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.6",
      "town": "7.0951862",
      "contrast": "17.5048138",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/NO2/-1",
      "start_pst": "2025-11-16T23:00:00",
      "end_pst": "2025-11-17T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.6",
      "town": "7.1",
      "contrast": "17.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/NO2/-1",
      "start_pst": "2025-11-16T23:00:00",
      "end_pst": "2025-11-17T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "2.6396294416666666666666666666666666666666666666667",
      "contrast": "2.5603705583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/PM25/+0",
      "start_pst": "2025-11-17T00:00:00",
      "end_pst": "2025-11-18T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "2.6458333333333333333333333333333333333333333333333",
      "contrast": "2.5541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/PM25/+0",
      "start_pst": "2025-11-17T00:00:00",
      "end_pst": "2025-11-18T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "4.6968211347826086956521739130434782608695652173913",
      "contrast": "7.2031788652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/NO2/+0",
      "start_pst": "2025-11-17T00:00:00",
      "end_pst": "2025-11-18T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "4.6956521739130434782608695652173913043478260869565",
      "contrast": "7.2043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/NO2/+0",
      "start_pst": "2025-11-17T00:00:00",
      "end_pst": "2025-11-18T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.6",
      "town": "7.0951862",
      "contrast": "17.5048138",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/NO2/+0",
      "start_pst": "2025-11-17T00:00:00",
      "end_pst": "2025-11-18T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.6",
      "town": "7.1",
      "contrast": "17.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/NO2/+0",
      "start_pst": "2025-11-17T00:00:00",
      "end_pst": "2025-11-18T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "2.7387565666666666666666666666666666666666666666667",
      "contrast": "2.4612434333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/PM25/+1",
      "start_pst": "2025-11-17T01:00:00",
      "end_pst": "2025-11-18T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "2.7416666666666666666666666666666666666666666666667",
      "contrast": "2.4583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/PM25/+1",
      "start_pst": "2025-11-17T01:00:00",
      "end_pst": "2025-11-18T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "4.7741866130434782608695652173913043478260869565217",
      "contrast": "7.1258133869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/NO2/+1",
      "start_pst": "2025-11-17T01:00:00",
      "end_pst": "2025-11-18T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.9",
      "town": "4.7739130434782608695652173913043478260869565217391",
      "contrast": "7.1260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/NO2/+1",
      "start_pst": "2025-11-17T01:00:00",
      "end_pst": "2025-11-18T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.6",
      "town": "7.0951862",
      "contrast": "17.5048138",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/NO2/+1",
      "start_pst": "2025-11-17T01:00:00",
      "end_pst": "2025-11-18T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.6",
      "town": "7.1",
      "contrast": "17.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-17/NO2/+1",
      "start_pst": "2025-11-17T01:00:00",
      "end_pst": "2025-11-18T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "5.3159268958333333333333333333333333333333333333333",
      "contrast": "0.9840731041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/PM25/-1",
      "start_pst": "2025-11-17T23:00:00",
      "end_pst": "2025-11-18T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "5.3166666666666666666666666666666666666666666666667",
      "contrast": "0.9833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/PM25/-1",
      "start_pst": "2025-11-17T23:00:00",
      "end_pst": "2025-11-18T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "6.8292269869565217391304347826086956521739130434783",
      "contrast": "1.8707730130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/NO2/-1",
      "start_pst": "2025-11-17T23:00:00",
      "end_pst": "2025-11-18T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "6.8304347826086956521739130434782608695652173913043",
      "contrast": "1.8695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/NO2/-1",
      "start_pst": "2025-11-17T23:00:00",
      "end_pst": "2025-11-18T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "12.8208075",
      "contrast": "2.0791925",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/NO2/-1",
      "start_pst": "2025-11-17T23:00:00",
      "end_pst": "2025-11-18T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "12.8",
      "contrast": "2.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/NO2/-1",
      "start_pst": "2025-11-17T23:00:00",
      "end_pst": "2025-11-18T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "5.229238725",
      "contrast": "1.070761275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/PM25/+0",
      "start_pst": "2025-11-18T00:00:00",
      "end_pst": "2025-11-19T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "5.2333333333333333333333333333333333333333333333333",
      "contrast": "1.0666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/PM25/+0",
      "start_pst": "2025-11-18T00:00:00",
      "end_pst": "2025-11-19T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "6.7293636434782608695652173913043478260869565217391",
      "contrast": "1.9706363565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/NO2/+0",
      "start_pst": "2025-11-18T00:00:00",
      "end_pst": "2025-11-19T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "6.7304347826086956521739130434782608695652173913043",
      "contrast": "1.9695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/NO2/+0",
      "start_pst": "2025-11-18T00:00:00",
      "end_pst": "2025-11-19T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "12.8208075",
      "contrast": "2.0791925",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/NO2/+0",
      "start_pst": "2025-11-18T00:00:00",
      "end_pst": "2025-11-19T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "12.8",
      "contrast": "2.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/NO2/+0",
      "start_pst": "2025-11-18T00:00:00",
      "end_pst": "2025-11-19T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "5.1156866791666666666666666666666666666666666666667",
      "contrast": "1.1843133208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/PM25/+1",
      "start_pst": "2025-11-18T01:00:00",
      "end_pst": "2025-11-19T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "5.1208333333333333333333333333333333333333333333333",
      "contrast": "1.1791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/PM25/+1",
      "start_pst": "2025-11-18T01:00:00",
      "end_pst": "2025-11-19T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "6.5749832086956521739130434782608695652173913043478",
      "contrast": "2.1250167913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/NO2/+1",
      "start_pst": "2025-11-18T01:00:00",
      "end_pst": "2025-11-19T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "6.5739130434782608695652173913043478260869565217391",
      "contrast": "2.1260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/NO2/+1",
      "start_pst": "2025-11-18T01:00:00",
      "end_pst": "2025-11-19T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "12.8208075",
      "contrast": "2.0791925",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/NO2/+1",
      "start_pst": "2025-11-18T01:00:00",
      "end_pst": "2025-11-19T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.9",
      "town": "12.8",
      "contrast": "2.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-18/NO2/+1",
      "start_pst": "2025-11-18T01:00:00",
      "end_pst": "2025-11-19T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "3.43910285",
      "contrast": "1.76089715",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-19/PM25/-1",
      "start_pst": "2025-11-18T23:00:00",
      "end_pst": "2025-11-19T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "3.4375",
      "contrast": "1.7625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-19/PM25/-1",
      "start_pst": "2025-11-18T23:00:00",
      "end_pst": "2025-11-19T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.1788341869565217391304347826086956521739130434783",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-19/NO2/-1",
      "start_pst": "2025-11-18T23:00:00",
      "end_pst": "2025-11-19T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.1782608695652173913043478260869565217391304347826",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-19/NO2/-1",
      "start_pst": "2025-11-18T23:00:00",
      "end_pst": "2025-11-19T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "12.337532",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-19/NO2/-1",
      "start_pst": "2025-11-18T23:00:00",
      "end_pst": "2025-11-19T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "12.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-19/NO2/-1",
      "start_pst": "2025-11-18T23:00:00",
      "end_pst": "2025-11-19T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "3.3973573958333333333333333333333333333333333333333",
      "contrast": "1.8026426041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-19/PM25/+0",
      "start_pst": "2025-11-19T00:00:00",
      "end_pst": "2025-11-20T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "3.3958333333333333333333333333333333333333333333333",
      "contrast": "1.8041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-19/PM25/+0",
      "start_pst": "2025-11-19T00:00:00",
      "end_pst": "2025-11-20T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.1692353565217391304347826086956521739130434782609",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-19/NO2/+0",
      "start_pst": "2025-11-19T00:00:00",
      "end_pst": "2025-11-20T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.1695652173913043478260869565217391304347826086957",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-19/NO2/+0",
      "start_pst": "2025-11-19T00:00:00",
      "end_pst": "2025-11-20T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "12.337532",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-19/NO2/+0",
      "start_pst": "2025-11-19T00:00:00",
      "end_pst": "2025-11-20T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "12.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-19/NO2/+0",
      "start_pst": "2025-11-19T00:00:00",
      "end_pst": "2025-11-20T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "3.3580918583333333333333333333333333333333333333333",
      "contrast": "1.8419081416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-19/PM25/+1",
      "start_pst": "2025-11-19T01:00:00",
      "end_pst": "2025-11-20T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": "3.3583333333333333333333333333333333333333333333333",
      "contrast": "1.8416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-19/PM25/+1",
      "start_pst": "2025-11-19T01:00:00",
      "end_pst": "2025-11-20T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.1930827913043478260869565217391304347826086956522",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-19/NO2/+1",
      "start_pst": "2025-11-19T01:00:00",
      "end_pst": "2025-11-20T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.1956521739130434782608695652173913043478260869565",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-19/NO2/+1",
      "start_pst": "2025-11-19T01:00:00",
      "end_pst": "2025-11-20T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "12.337532",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-19/NO2/+1",
      "start_pst": "2025-11-19T01:00:00",
      "end_pst": "2025-11-20T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "12.3",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-19/NO2/+1",
      "start_pst": "2025-11-19T01:00:00",
      "end_pst": "2025-11-20T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.0949908291666666666666666666666666666666666666667",
      "contrast": "2.4050091708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-20/PM25/-1",
      "start_pst": "2025-11-19T23:00:00",
      "end_pst": "2025-11-20T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.0916666666666666666666666666666666666666666666667",
      "contrast": "2.4083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-20/PM25/-1",
      "start_pst": "2025-11-19T23:00:00",
      "end_pst": "2025-11-20T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.2410170869565217391304347826086956521739130434783",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-20/NO2/-1",
      "start_pst": "2025-11-19T23:00:00",
      "end_pst": "2025-11-20T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.2304347826086956521739130434782608695652173913043",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-20/NO2/-1",
      "start_pst": "2025-11-19T23:00:00",
      "end_pst": "2025-11-20T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "8.0934439",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-20/NO2/-1",
      "start_pst": "2025-11-19T23:00:00",
      "end_pst": "2025-11-20T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "8.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-20/NO2/-1",
      "start_pst": "2025-11-19T23:00:00",
      "end_pst": "2025-11-20T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.3151552458333333333333333333333333333333333333333",
      "contrast": "2.1848447541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-20/PM25/+0",
      "start_pst": "2025-11-20T00:00:00",
      "end_pst": "2025-11-21T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.3083333333333333333333333333333333333333333333333",
      "contrast": "2.1916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-20/PM25/+0",
      "start_pst": "2025-11-20T00:00:00",
      "end_pst": "2025-11-21T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.2938243521739130434782608695652173913043478260870",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-20/NO2/+0",
      "start_pst": "2025-11-20T00:00:00",
      "end_pst": "2025-11-21T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.2826086956521739130434782608695652173913043478261",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-20/NO2/+0",
      "start_pst": "2025-11-20T00:00:00",
      "end_pst": "2025-11-21T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "8.0934439",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-20/NO2/+0",
      "start_pst": "2025-11-20T00:00:00",
      "end_pst": "2025-11-21T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "8.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-20/NO2/+0",
      "start_pst": "2025-11-20T00:00:00",
      "end_pst": "2025-11-21T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.7445450958333333333333333333333333333333333333333",
      "contrast": "1.7554549041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-20/PM25/+1",
      "start_pst": "2025-11-20T01:00:00",
      "end_pst": "2025-11-21T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "5.7375",
      "contrast": "1.7625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-20/PM25/+1",
      "start_pst": "2025-11-20T01:00:00",
      "end_pst": "2025-11-21T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.3447883956521739130434782608695652173913043478261",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-20/NO2/+1",
      "start_pst": "2025-11-20T01:00:00",
      "end_pst": "2025-11-21T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "4.3347826086956521739130434782608695652173913043478",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-20/NO2/+1",
      "start_pst": "2025-11-20T01:00:00",
      "end_pst": "2025-11-21T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "8.0934439",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-20/NO2/+1",
      "start_pst": "2025-11-20T01:00:00",
      "end_pst": "2025-11-21T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "\u2013c",
      "onsite_status": "explicitly_missing",
      "onsite_footnote": "c",
      "onsite": null,
      "town": "8.1",
      "contrast": null,
      "onsite_numeric": false,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": false,
      "exclusion_reasons": [
        "onsite_explicitly_missing"
      ],
      "window_id": "2025-11-20/NO2/+1",
      "start_pst": "2025-11-20T01:00:00",
      "end_pst": "2025-11-21T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "3.1724567291666666666666666666666666666666666666667",
      "contrast": "3.0275432708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/PM25/-1",
      "start_pst": "2025-11-20T23:00:00",
      "end_pst": "2025-11-21T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "3.1708333333333333333333333333333333333333333333333",
      "contrast": "3.0291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/PM25/-1",
      "start_pst": "2025-11-20T23:00:00",
      "end_pst": "2025-11-21T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "9.4462179",
      "contrast": "4.8537821",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/NO2/-1",
      "start_pst": "2025-11-20T23:00:00",
      "end_pst": "2025-11-21T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "9.4608695652173913043478260869565217391304347826087",
      "contrast": "4.8391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/NO2/-1",
      "start_pst": "2025-11-20T23:00:00",
      "end_pst": "2025-11-21T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.4",
      "town": "15.4722271",
      "contrast": "15.9277729",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/NO2/-1",
      "start_pst": "2025-11-20T23:00:00",
      "end_pst": "2025-11-21T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.4",
      "town": "15.5",
      "contrast": "15.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/NO2/-1",
      "start_pst": "2025-11-20T23:00:00",
      "end_pst": "2025-11-21T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.8786586833333333333333333333333333333333333333333",
      "contrast": "3.3213413166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/PM25/+0",
      "start_pst": "2025-11-21T00:00:00",
      "end_pst": "2025-11-22T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.8791666666666666666666666666666666666666666666667",
      "contrast": "3.3208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/PM25/+0",
      "start_pst": "2025-11-21T00:00:00",
      "end_pst": "2025-11-22T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "9.5576369347826086956521739130434782608695652173913",
      "contrast": "4.7423630652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/NO2/+0",
      "start_pst": "2025-11-21T00:00:00",
      "end_pst": "2025-11-22T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "9.5739130434782608695652173913043478260869565217391",
      "contrast": "4.7260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/NO2/+0",
      "start_pst": "2025-11-21T00:00:00",
      "end_pst": "2025-11-22T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.4",
      "town": "15.4722271",
      "contrast": "15.9277729",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/NO2/+0",
      "start_pst": "2025-11-21T00:00:00",
      "end_pst": "2025-11-22T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.4",
      "town": "15.5",
      "contrast": "15.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/NO2/+0",
      "start_pst": "2025-11-21T00:00:00",
      "end_pst": "2025-11-22T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.4009980833333333333333333333333333333333333333333",
      "contrast": "3.7990019166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/PM25/+1",
      "start_pst": "2025-11-21T01:00:00",
      "end_pst": "2025-11-22T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.2",
      "town": "2.4",
      "contrast": "3.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/PM25/+1",
      "start_pst": "2025-11-21T01:00:00",
      "end_pst": "2025-11-22T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "9.6542073347826086956521739130434782608695652173913",
      "contrast": "4.6457926652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/NO2/+1",
      "start_pst": "2025-11-21T01:00:00",
      "end_pst": "2025-11-22T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.3",
      "town": "9.6695652173913043478260869565217391304347826086957",
      "contrast": "4.6304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/NO2/+1",
      "start_pst": "2025-11-21T01:00:00",
      "end_pst": "2025-11-22T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.4",
      "town": "15.4722271",
      "contrast": "15.9277729",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/NO2/+1",
      "start_pst": "2025-11-21T01:00:00",
      "end_pst": "2025-11-22T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "31.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "31.4",
      "town": "15.5",
      "contrast": "15.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-21/NO2/+1",
      "start_pst": "2025-11-21T01:00:00",
      "end_pst": "2025-11-22T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.0687944666666666666666666666666666666666666666667",
      "contrast": "3.9312055333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/PM25/-1",
      "start_pst": "2025-11-21T23:00:00",
      "end_pst": "2025-11-22T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.075",
      "contrast": "3.925",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/PM25/-1",
      "start_pst": "2025-11-21T23:00:00",
      "end_pst": "2025-11-22T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "7.2400776608695652173913043478260869565217391304348",
      "contrast": "11.259922339130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/NO2/-1",
      "start_pst": "2025-11-21T23:00:00",
      "end_pst": "2025-11-22T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "7.2478260869565217391304347826086956521739130434783",
      "contrast": "11.252173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/NO2/-1",
      "start_pst": "2025-11-21T23:00:00",
      "end_pst": "2025-11-22T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.6",
      "town": "13.7170362",
      "contrast": "16.8829638",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/NO2/-1",
      "start_pst": "2025-11-21T23:00:00",
      "end_pst": "2025-11-22T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.6",
      "town": "13.7",
      "contrast": "16.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/NO2/-1",
      "start_pst": "2025-11-21T23:00:00",
      "end_pst": "2025-11-22T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.104439925",
      "contrast": "3.895560075",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/PM25/+0",
      "start_pst": "2025-11-22T00:00:00",
      "end_pst": "2025-11-23T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.1083333333333333333333333333333333333333333333333",
      "contrast": "3.8916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/PM25/+0",
      "start_pst": "2025-11-22T00:00:00",
      "end_pst": "2025-11-23T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "7.1548765826086956521739130434782608695652173913043",
      "contrast": "11.345123417391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/NO2/+0",
      "start_pst": "2025-11-22T00:00:00",
      "end_pst": "2025-11-23T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "7.1608695652173913043478260869565217391304347826087",
      "contrast": "11.339130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/NO2/+0",
      "start_pst": "2025-11-22T00:00:00",
      "end_pst": "2025-11-23T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.6",
      "town": "13.7170362",
      "contrast": "16.8829638",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/NO2/+0",
      "start_pst": "2025-11-22T00:00:00",
      "end_pst": "2025-11-23T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.6",
      "town": "13.7",
      "contrast": "16.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/NO2/+0",
      "start_pst": "2025-11-22T00:00:00",
      "end_pst": "2025-11-23T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.1151723416666666666666666666666666666666666666667",
      "contrast": "3.8848276583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/PM25/+1",
      "start_pst": "2025-11-22T01:00:00",
      "end_pst": "2025-11-23T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.1208333333333333333333333333333333333333333333333",
      "contrast": "3.8791666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/PM25/+1",
      "start_pst": "2025-11-22T01:00:00",
      "end_pst": "2025-11-23T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "7.0838631826086956521739130434782608695652173913043",
      "contrast": "11.416136817391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/NO2/+1",
      "start_pst": "2025-11-22T01:00:00",
      "end_pst": "2025-11-23T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "7.0869565217391304347826086956521739130434782608696",
      "contrast": "11.413043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/NO2/+1",
      "start_pst": "2025-11-22T01:00:00",
      "end_pst": "2025-11-23T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.6",
      "town": "13.7170362",
      "contrast": "16.8829638",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/NO2/+1",
      "start_pst": "2025-11-22T01:00:00",
      "end_pst": "2025-11-23T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "30.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "30.6",
      "town": "13.7",
      "contrast": "16.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-22/NO2/+1",
      "start_pst": "2025-11-22T01:00:00",
      "end_pst": "2025-11-23T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "3.9548320125",
      "contrast": "1.8451679875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/PM25/-1",
      "start_pst": "2025-11-22T23:00:00",
      "end_pst": "2025-11-23T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "3.9583333333333333333333333333333333333333333333333",
      "contrast": "1.8416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/PM25/-1",
      "start_pst": "2025-11-22T23:00:00",
      "end_pst": "2025-11-23T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.2261337043478260869565217391304347826086956521739",
      "contrast": "6.2738662956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/NO2/-1",
      "start_pst": "2025-11-22T23:00:00",
      "end_pst": "2025-11-23T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.2217391304347826086956521739130434782608695652174",
      "contrast": "6.2782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/NO2/-1",
      "start_pst": "2025-11-22T23:00:00",
      "end_pst": "2025-11-23T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "7.3117108",
      "contrast": "15.0882892",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/NO2/-1",
      "start_pst": "2025-11-22T23:00:00",
      "end_pst": "2025-11-23T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "7.3",
      "contrast": "15.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/NO2/-1",
      "start_pst": "2025-11-22T23:00:00",
      "end_pst": "2025-11-23T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "4.2093267625",
      "contrast": "1.5906732375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/PM25/+0",
      "start_pst": "2025-11-23T00:00:00",
      "end_pst": "2025-11-24T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "4.2166666666666666666666666666666666666666666666667",
      "contrast": "1.5833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/PM25/+0",
      "start_pst": "2025-11-23T00:00:00",
      "end_pst": "2025-11-24T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.3144333130434782608695652173913043478260869565217",
      "contrast": "6.1855666869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/NO2/+0",
      "start_pst": "2025-11-23T00:00:00",
      "end_pst": "2025-11-24T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.3086956521739130434782608695652173913043478260870",
      "contrast": "6.1913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/NO2/+0",
      "start_pst": "2025-11-23T00:00:00",
      "end_pst": "2025-11-24T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "7.3117108",
      "contrast": "15.0882892",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/NO2/+0",
      "start_pst": "2025-11-23T00:00:00",
      "end_pst": "2025-11-24T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "7.3",
      "contrast": "15.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/NO2/+0",
      "start_pst": "2025-11-23T00:00:00",
      "end_pst": "2025-11-24T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "4.3634207208333333333333333333333333333333333333333",
      "contrast": "1.4365792791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/PM25/+1",
      "start_pst": "2025-11-23T01:00:00",
      "end_pst": "2025-11-24T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "4.3708333333333333333333333333333333333333333333333",
      "contrast": "1.4291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/PM25/+1",
      "start_pst": "2025-11-23T01:00:00",
      "end_pst": "2025-11-24T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.4071061478260869565217391304347826086956521739130",
      "contrast": "6.0928938521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/NO2/+1",
      "start_pst": "2025-11-23T01:00:00",
      "end_pst": "2025-11-24T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.5",
      "town": "4.4043478260869565217391304347826086956521739130435",
      "contrast": "6.0956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/NO2/+1",
      "start_pst": "2025-11-23T01:00:00",
      "end_pst": "2025-11-24T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "7.3117108",
      "contrast": "15.0882892",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/NO2/+1",
      "start_pst": "2025-11-23T01:00:00",
      "end_pst": "2025-11-24T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.4",
      "town": "7.3",
      "contrast": "15.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-23/NO2/+1",
      "start_pst": "2025-11-23T01:00:00",
      "end_pst": "2025-11-24T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.9080196458333333333333333333333333333333333333333",
      "contrast": "1.3919803541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/PM25/-1",
      "start_pst": "2025-11-23T23:00:00",
      "end_pst": "2025-11-24T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.9125",
      "contrast": "1.3875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/PM25/-1",
      "start_pst": "2025-11-23T23:00:00",
      "end_pst": "2025-11-24T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.5551923739130434782608695652173913043478260869565",
      "contrast": "2.0448076260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/NO2/-1",
      "start_pst": "2025-11-23T23:00:00",
      "end_pst": "2025-11-24T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.5478260869565217391304347826086956521739130434783",
      "contrast": "2.0521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/NO2/-1",
      "start_pst": "2025-11-23T23:00:00",
      "end_pst": "2025-11-24T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "9.1455326",
      "contrast": "5.9544674",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/NO2/-1",
      "start_pst": "2025-11-23T23:00:00",
      "end_pst": "2025-11-24T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "9.1",
      "contrast": "6.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/NO2/-1",
      "start_pst": "2025-11-23T23:00:00",
      "end_pst": "2025-11-24T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.7349581458333333333333333333333333333333333333333",
      "contrast": "1.5650418541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/PM25/+0",
      "start_pst": "2025-11-24T00:00:00",
      "end_pst": "2025-11-25T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.7375",
      "contrast": "1.5625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/PM25/+0",
      "start_pst": "2025-11-24T00:00:00",
      "end_pst": "2025-11-25T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.4102335869565217391304347826086956521739130434783",
      "contrast": "2.1897664130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/NO2/+0",
      "start_pst": "2025-11-24T00:00:00",
      "end_pst": "2025-11-25T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.4043478260869565217391304347826086956521739130435",
      "contrast": "2.1956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/NO2/+0",
      "start_pst": "2025-11-24T00:00:00",
      "end_pst": "2025-11-25T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "9.1455326",
      "contrast": "5.9544674",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/NO2/+0",
      "start_pst": "2025-11-24T00:00:00",
      "end_pst": "2025-11-25T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "9.1",
      "contrast": "6.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/NO2/+0",
      "start_pst": "2025-11-24T00:00:00",
      "end_pst": "2025-11-25T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.6308743125",
      "contrast": "1.6691256875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/PM25/+1",
      "start_pst": "2025-11-24T01:00:00",
      "end_pst": "2025-11-25T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "4.6333333333333333333333333333333333333333333333333",
      "contrast": "1.6666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/PM25/+1",
      "start_pst": "2025-11-24T01:00:00",
      "end_pst": "2025-11-25T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.2204839695652173913043478260869565217391304347826",
      "contrast": "2.3795160304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/NO2/+1",
      "start_pst": "2025-11-24T01:00:00",
      "end_pst": "2025-11-25T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "5.2130434782608695652173913043478260869565217391304",
      "contrast": "2.3869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/NO2/+1",
      "start_pst": "2025-11-24T01:00:00",
      "end_pst": "2025-11-25T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "9.1455326",
      "contrast": "5.9544674",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/NO2/+1",
      "start_pst": "2025-11-24T01:00:00",
      "end_pst": "2025-11-25T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.1",
      "town": "9.1",
      "contrast": "6.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-24/NO2/+1",
      "start_pst": "2025-11-24T01:00:00",
      "end_pst": "2025-11-25T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.5631462125",
      "contrast": "2.4368537875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/PM25/-1",
      "start_pst": "2025-11-24T23:00:00",
      "end_pst": "2025-11-25T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.5625",
      "contrast": "2.4375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/PM25/-1",
      "start_pst": "2025-11-24T23:00:00",
      "end_pst": "2025-11-25T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "3.1208275869565217391304347826086956521739130434783",
      "contrast": "2.5791724130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/NO2/-1",
      "start_pst": "2025-11-24T23:00:00",
      "end_pst": "2025-11-25T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "3.1260869565217391304347826086956521739130434782609",
      "contrast": "2.5739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/NO2/-1",
      "start_pst": "2025-11-24T23:00:00",
      "end_pst": "2025-11-25T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "6.1076531",
      "contrast": "5.2923469",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/NO2/-1",
      "start_pst": "2025-11-24T23:00:00",
      "end_pst": "2025-11-25T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "6.1",
      "contrast": "5.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/NO2/-1",
      "start_pst": "2025-11-24T23:00:00",
      "end_pst": "2025-11-25T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.4758958375",
      "contrast": "2.5241041625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/PM25/+0",
      "start_pst": "2025-11-25T00:00:00",
      "end_pst": "2025-11-26T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.475",
      "contrast": "2.525",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/PM25/+0",
      "start_pst": "2025-11-25T00:00:00",
      "end_pst": "2025-11-26T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "3.0521048913043478260869565217391304347826086956522",
      "contrast": "2.6478951086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/NO2/+0",
      "start_pst": "2025-11-25T00:00:00",
      "end_pst": "2025-11-26T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "3.0565217391304347826086956521739130434782608695652",
      "contrast": "2.6434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/NO2/+0",
      "start_pst": "2025-11-25T00:00:00",
      "end_pst": "2025-11-26T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "6.1076531",
      "contrast": "5.2923469",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/NO2/+0",
      "start_pst": "2025-11-25T00:00:00",
      "end_pst": "2025-11-26T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "6.1",
      "contrast": "5.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/NO2/+0",
      "start_pst": "2025-11-25T00:00:00",
      "end_pst": "2025-11-26T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.4608191291666666666666666666666666666666666666667",
      "contrast": "2.5391808708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/PM25/+1",
      "start_pst": "2025-11-25T01:00:00",
      "end_pst": "2025-11-26T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.0",
      "town": "2.4583333333333333333333333333333333333333333333333",
      "contrast": "2.5416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/PM25/+1",
      "start_pst": "2025-11-25T01:00:00",
      "end_pst": "2025-11-26T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "3.0305238043478260869565217391304347826086956521739",
      "contrast": "2.6694761956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/NO2/+1",
      "start_pst": "2025-11-25T01:00:00",
      "end_pst": "2025-11-26T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "3.0347826086956521739130434782608695652173913043478",
      "contrast": "2.6652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/NO2/+1",
      "start_pst": "2025-11-25T01:00:00",
      "end_pst": "2025-11-26T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "6.1076531",
      "contrast": "5.2923469",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/NO2/+1",
      "start_pst": "2025-11-25T01:00:00",
      "end_pst": "2025-11-26T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.4",
      "town": "6.1",
      "contrast": "5.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-25/NO2/+1",
      "start_pst": "2025-11-25T01:00:00",
      "end_pst": "2025-11-26T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.0914862166666666666666666666666666666666666666667",
      "contrast": "4.3085137833333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/PM25/-1",
      "start_pst": "2025-11-25T23:00:00",
      "end_pst": "2025-11-26T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.0916666666666666666666666666666666666666666666667",
      "contrast": "4.3083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/PM25/-1",
      "start_pst": "2025-11-25T23:00:00",
      "end_pst": "2025-11-26T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "2.5170880869565217391304347826086956521739130434783",
      "contrast": "3.1829119130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/NO2/-1",
      "start_pst": "2025-11-25T23:00:00",
      "end_pst": "2025-11-26T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "2.5086956521739130434782608695652173913043478260870",
      "contrast": "3.1913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/NO2/-1",
      "start_pst": "2025-11-25T23:00:00",
      "end_pst": "2025-11-26T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "6.612031",
      "contrast": "7.387969",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/NO2/-1",
      "start_pst": "2025-11-25T23:00:00",
      "end_pst": "2025-11-26T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "6.6",
      "contrast": "7.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/NO2/-1",
      "start_pst": "2025-11-25T23:00:00",
      "end_pst": "2025-11-26T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.0766814666666666666666666666666666666666666666667",
      "contrast": "4.3233185333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/PM25/+0",
      "start_pst": "2025-11-26T00:00:00",
      "end_pst": "2025-11-27T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.075",
      "contrast": "4.325",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/PM25/+0",
      "start_pst": "2025-11-26T00:00:00",
      "end_pst": "2025-11-27T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "2.5065710434782608695652173913043478260869565217391",
      "contrast": "3.1934289565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/NO2/+0",
      "start_pst": "2025-11-26T00:00:00",
      "end_pst": "2025-11-27T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "2.5",
      "contrast": "3.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/NO2/+0",
      "start_pst": "2025-11-26T00:00:00",
      "end_pst": "2025-11-27T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "6.612031",
      "contrast": "7.387969",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/NO2/+0",
      "start_pst": "2025-11-26T00:00:00",
      "end_pst": "2025-11-27T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "6.6",
      "contrast": "7.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/NO2/+0",
      "start_pst": "2025-11-26T00:00:00",
      "end_pst": "2025-11-27T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.0476213",
      "contrast": "4.3523787",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/PM25/+1",
      "start_pst": "2025-11-26T01:00:00",
      "end_pst": "2025-11-27T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "2.0458333333333333333333333333333333333333333333333",
      "contrast": "4.3541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/PM25/+1",
      "start_pst": "2025-11-26T01:00:00",
      "end_pst": "2025-11-27T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "2.4927423043478260869565217391304347826086956521739",
      "contrast": "3.2072576956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/NO2/+1",
      "start_pst": "2025-11-26T01:00:00",
      "end_pst": "2025-11-27T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "2.4869565217391304347826086956521739130434782608696",
      "contrast": "3.2130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/NO2/+1",
      "start_pst": "2025-11-26T01:00:00",
      "end_pst": "2025-11-27T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "6.612031",
      "contrast": "7.387969",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/NO2/+1",
      "start_pst": "2025-11-26T01:00:00",
      "end_pst": "2025-11-27T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.0",
      "town": "6.6",
      "contrast": "7.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-26/NO2/+1",
      "start_pst": "2025-11-26T01:00:00",
      "end_pst": "2025-11-27T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "1.6784017875",
      "contrast": "3.6215982125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/PM25/-1",
      "start_pst": "2025-11-26T23:00:00",
      "end_pst": "2025-11-27T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "1.675",
      "contrast": "3.625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/PM25/-1",
      "start_pst": "2025-11-26T23:00:00",
      "end_pst": "2025-11-27T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "2.2007113608695652173913043478260869565217391304348",
      "contrast": "4.4992886391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/NO2/-1",
      "start_pst": "2025-11-26T23:00:00",
      "end_pst": "2025-11-27T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "2.1956521739130434782608695652173913043478260869565",
      "contrast": "4.5043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/NO2/-1",
      "start_pst": "2025-11-26T23:00:00",
      "end_pst": "2025-11-27T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "5.448513",
      "contrast": "13.051487",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/NO2/-1",
      "start_pst": "2025-11-26T23:00:00",
      "end_pst": "2025-11-27T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "5.4",
      "contrast": "13.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/NO2/-1",
      "start_pst": "2025-11-26T23:00:00",
      "end_pst": "2025-11-27T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "1.6993166625",
      "contrast": "3.6006833375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/PM25/+0",
      "start_pst": "2025-11-27T00:00:00",
      "end_pst": "2025-11-28T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "1.6958333333333333333333333333333333333333333333333",
      "contrast": "3.6041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/PM25/+0",
      "start_pst": "2025-11-27T00:00:00",
      "end_pst": "2025-11-28T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "2.1910026217391304347826086956521739130434782608696",
      "contrast": "4.5089973782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/NO2/+0",
      "start_pst": "2025-11-27T00:00:00",
      "end_pst": "2025-11-28T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "2.1869565217391304347826086956521739130434782608696",
      "contrast": "4.5130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/NO2/+0",
      "start_pst": "2025-11-27T00:00:00",
      "end_pst": "2025-11-28T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "5.448513",
      "contrast": "13.051487",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/NO2/+0",
      "start_pst": "2025-11-27T00:00:00",
      "end_pst": "2025-11-28T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "5.4",
      "contrast": "13.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/NO2/+0",
      "start_pst": "2025-11-27T00:00:00",
      "end_pst": "2025-11-28T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "1.7179187875",
      "contrast": "3.5820812125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/PM25/+1",
      "start_pst": "2025-11-27T01:00:00",
      "end_pst": "2025-11-28T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": "1.7166666666666666666666666666666666666666666666667",
      "contrast": "3.5833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/PM25/+1",
      "start_pst": "2025-11-27T01:00:00",
      "end_pst": "2025-11-28T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "2.1888371434782608695652173913043478260869565217391",
      "contrast": "4.5111628565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/NO2/+1",
      "start_pst": "2025-11-27T01:00:00",
      "end_pst": "2025-11-28T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.7",
      "town": "2.1826086956521739130434782608695652173913043478261",
      "contrast": "4.5173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/NO2/+1",
      "start_pst": "2025-11-27T01:00:00",
      "end_pst": "2025-11-28T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "5.448513",
      "contrast": "13.051487",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/NO2/+1",
      "start_pst": "2025-11-27T01:00:00",
      "end_pst": "2025-11-28T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.5",
      "town": "5.4",
      "contrast": "13.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-27/NO2/+1",
      "start_pst": "2025-11-27T01:00:00",
      "end_pst": "2025-11-28T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "3.2298587583333333333333333333333333333333333333333",
      "contrast": "2.1701412416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/PM25/-1",
      "start_pst": "2025-11-27T23:00:00",
      "end_pst": "2025-11-28T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "3.2375",
      "contrast": "2.1625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/PM25/-1",
      "start_pst": "2025-11-27T23:00:00",
      "end_pst": "2025-11-28T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "2.6500574913043478260869565217391304347826086956522",
      "contrast": "2.1499425086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/NO2/-1",
      "start_pst": "2025-11-27T23:00:00",
      "end_pst": "2025-11-28T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "2.6521739130434782608695652173913043478260869565217",
      "contrast": "2.1478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/NO2/-1",
      "start_pst": "2025-11-27T23:00:00",
      "end_pst": "2025-11-28T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "7.737505",
      "contrast": "0.362495",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/NO2/-1",
      "start_pst": "2025-11-27T23:00:00",
      "end_pst": "2025-11-28T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "7.7",
      "contrast": "0.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/NO2/-1",
      "start_pst": "2025-11-27T23:00:00",
      "end_pst": "2025-11-28T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "3.3841954708333333333333333333333333333333333333333",
      "contrast": "2.0158045291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/PM25/+0",
      "start_pst": "2025-11-28T00:00:00",
      "end_pst": "2025-11-29T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "3.3958333333333333333333333333333333333333333333333",
      "contrast": "2.0041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/PM25/+0",
      "start_pst": "2025-11-28T00:00:00",
      "end_pst": "2025-11-29T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "2.7880265782608695652173913043478260869565217391304",
      "contrast": "2.0119734217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/NO2/+0",
      "start_pst": "2025-11-28T00:00:00",
      "end_pst": "2025-11-29T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "2.7869565217391304347826086956521739130434782608696",
      "contrast": "2.0130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/NO2/+0",
      "start_pst": "2025-11-28T00:00:00",
      "end_pst": "2025-11-29T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "7.737505",
      "contrast": "0.362495",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/NO2/+0",
      "start_pst": "2025-11-28T00:00:00",
      "end_pst": "2025-11-29T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "7.7",
      "contrast": "0.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/NO2/+0",
      "start_pst": "2025-11-28T00:00:00",
      "end_pst": "2025-11-29T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "3.50195905",
      "contrast": "1.89804095",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/PM25/+1",
      "start_pst": "2025-11-28T01:00:00",
      "end_pst": "2025-11-29T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.4",
      "town": "3.5125",
      "contrast": "1.8875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/PM25/+1",
      "start_pst": "2025-11-28T01:00:00",
      "end_pst": "2025-11-29T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "2.9208034521739130434782608695652173913043478260870",
      "contrast": "1.8791965478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/NO2/+1",
      "start_pst": "2025-11-28T01:00:00",
      "end_pst": "2025-11-29T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "2.9217391304347826086956521739130434782608695652174",
      "contrast": "1.8782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/NO2/+1",
      "start_pst": "2025-11-28T01:00:00",
      "end_pst": "2025-11-29T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "7.737505",
      "contrast": "0.362495",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/NO2/+1",
      "start_pst": "2025-11-28T01:00:00",
      "end_pst": "2025-11-29T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.1",
      "town": "7.7",
      "contrast": "0.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-28/NO2/+1",
      "start_pst": "2025-11-28T01:00:00",
      "end_pst": "2025-11-29T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "5.8092009",
      "contrast": "0.0907991",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/PM25/-1",
      "start_pst": "2025-11-28T23:00:00",
      "end_pst": "2025-11-29T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "5.8125",
      "contrast": "0.0875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/PM25/-1",
      "start_pst": "2025-11-28T23:00:00",
      "end_pst": "2025-11-29T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.5066401434782608695652173913043478260869565217391",
      "contrast": "-0.0066401434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/NO2/-1",
      "start_pst": "2025-11-28T23:00:00",
      "end_pst": "2025-11-29T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.5043478260869565217391304347826086956521739130435",
      "contrast": "-0.0043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/NO2/-1",
      "start_pst": "2025-11-28T23:00:00",
      "end_pst": "2025-11-29T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "11.145977",
      "contrast": "0.154023",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/NO2/-1",
      "start_pst": "2025-11-28T23:00:00",
      "end_pst": "2025-11-29T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "11.1",
      "contrast": "0.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/NO2/-1",
      "start_pst": "2025-11-28T23:00:00",
      "end_pst": "2025-11-29T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "5.886366025",
      "contrast": "0.013633975",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/PM25/+0",
      "start_pst": "2025-11-29T00:00:00",
      "end_pst": "2025-11-30T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "5.8875",
      "contrast": "0.0125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/PM25/+0",
      "start_pst": "2025-11-29T00:00:00",
      "end_pst": "2025-11-30T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.5197198826086956521739130434782608695652173913043",
      "contrast": "-0.0197198826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/NO2/+0",
      "start_pst": "2025-11-29T00:00:00",
      "end_pst": "2025-11-30T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.5173913043478260869565217391304347826086956521739",
      "contrast": "-0.0173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/NO2/+0",
      "start_pst": "2025-11-29T00:00:00",
      "end_pst": "2025-11-30T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "11.145977",
      "contrast": "0.154023",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/NO2/+0",
      "start_pst": "2025-11-29T00:00:00",
      "end_pst": "2025-11-30T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "11.1",
      "contrast": "0.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/NO2/+0",
      "start_pst": "2025-11-29T00:00:00",
      "end_pst": "2025-11-30T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "6.0185274041666666666666666666666666666666666666667",
      "contrast": "-0.1185274041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/PM25/+1",
      "start_pst": "2025-11-29T01:00:00",
      "end_pst": "2025-11-30T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "6.0166666666666666666666666666666666666666666666667",
      "contrast": "-0.1166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/PM25/+1",
      "start_pst": "2025-11-29T01:00:00",
      "end_pst": "2025-11-30T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.6010220608695652173913043478260869565217391304348",
      "contrast": "-0.1010220608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/NO2/+1",
      "start_pst": "2025-11-29T01:00:00",
      "end_pst": "2025-11-30T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "5.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.5",
      "town": "5.6",
      "contrast": "-0.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/NO2/+1",
      "start_pst": "2025-11-29T01:00:00",
      "end_pst": "2025-11-30T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "11.145977",
      "contrast": "0.154023",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/NO2/+1",
      "start_pst": "2025-11-29T01:00:00",
      "end_pst": "2025-11-30T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.3",
      "town": "11.1",
      "contrast": "0.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-29/NO2/+1",
      "start_pst": "2025-11-29T01:00:00",
      "end_pst": "2025-11-30T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "6.6989490625",
      "contrast": "-0.5989490625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/PM25/-1",
      "start_pst": "2025-11-29T23:00:00",
      "end_pst": "2025-11-30T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "6.7",
      "contrast": "-0.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/PM25/-1",
      "start_pst": "2025-11-29T23:00:00",
      "end_pst": "2025-11-30T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "6.1801764347826086956521739130434782608695652173913",
      "contrast": "0.9198235652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/NO2/-1",
      "start_pst": "2025-11-29T23:00:00",
      "end_pst": "2025-11-30T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "6.1782608695652173913043478260869565217391304347826",
      "contrast": "0.9217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/NO2/-1",
      "start_pst": "2025-11-29T23:00:00",
      "end_pst": "2025-11-30T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "12.629384",
      "contrast": "1.070616",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/NO2/-1",
      "start_pst": "2025-11-29T23:00:00",
      "end_pst": "2025-11-30T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "12.6",
      "contrast": "1.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/NO2/-1",
      "start_pst": "2025-11-29T23:00:00",
      "end_pst": "2025-11-30T23:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "6.7860281541666666666666666666666666666666666666667",
      "contrast": "-0.6860281541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/PM25/+0",
      "start_pst": "2025-11-30T00:00:00",
      "end_pst": "2025-12-01T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "6.7875",
      "contrast": "-0.6875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/PM25/+0",
      "start_pst": "2025-11-30T00:00:00",
      "end_pst": "2025-12-01T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "6.2251879130434782608695652173913043478260869565217",
      "contrast": "0.8748120869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/NO2/+0",
      "start_pst": "2025-11-30T00:00:00",
      "end_pst": "2025-12-01T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "6.2260869565217391304347826086956521739130434782609",
      "contrast": "0.8739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/NO2/+0",
      "start_pst": "2025-11-30T00:00:00",
      "end_pst": "2025-12-01T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "12.629384",
      "contrast": "1.070616",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/NO2/+0",
      "start_pst": "2025-11-30T00:00:00",
      "end_pst": "2025-12-01T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "12.6",
      "contrast": "1.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/NO2/+0",
      "start_pst": "2025-11-30T00:00:00",
      "end_pst": "2025-12-01T00:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "6.8231142041666666666666666666666666666666666666667",
      "contrast": "-0.7231142041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/PM25/+1",
      "start_pst": "2025-11-30T01:00:00",
      "end_pst": "2025-12-01T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "6.825",
      "contrast": "-0.725",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/PM25/+1",
      "start_pst": "2025-11-30T01:00:00",
      "end_pst": "2025-12-01T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-11-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "6.2062536391304347826086956521739130434782608695652",
      "contrast": "0.8937463608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/NO2/+1",
      "start_pst": "2025-11-30T01:00:00",
      "end_pst": "2025-12-01T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": "6.2043478260869565217391304347826086956521739130435",
      "contrast": "0.8956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/NO2/+1",
      "start_pst": "2025-11-30T01:00:00",
      "end_pst": "2025-12-01T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-11-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "12.629384",
      "contrast": "1.070616",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/NO2/+1",
      "start_pst": "2025-11-30T01:00:00",
      "end_pst": "2025-12-01T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-11-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.7",
      "town": "12.6",
      "contrast": "1.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-11-30/NO2/+1",
      "start_pst": "2025-11-30T01:00:00",
      "end_pst": "2025-12-01T01:00:00",
      "onsite_source": {
        "month": "2025-11",
        "date_printed": "11/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/03/WLNG-AQMS-Monthly-Report-2025-11-November-2025_v.01.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-11.pdf",
        "source_pdf_sha256": "0553f4cd9ea10fe947665b74e54e0c4b4200dcf547975d28587cef61a85bb108",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-11/table-b1-air-native.csv",
        "source_csv_sha256": "245d1e59be3715c1b1a98aa3616ed9dce4312dc968545247eec9321a276fb8ab",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "5.3079740458333333333333333333333333333333333333333",
      "contrast": "2.6920259541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/PM25/-1",
      "start_pst": "2025-11-30T23:00:00",
      "end_pst": "2025-12-01T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-01",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "5.3083333333333333333333333333333333333333333333333",
      "contrast": "2.6916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/PM25/-1",
      "start_pst": "2025-11-30T23:00:00",
      "end_pst": "2025-12-01T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "5.7612258956521739130434782608695652173913043478261",
      "contrast": "3.8387741043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/NO2/-1",
      "start_pst": "2025-11-30T23:00:00",
      "end_pst": "2025-12-01T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-01",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "5.7565217391304347826086956521739130434782608695652",
      "contrast": "3.8434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/NO2/-1",
      "start_pst": "2025-11-30T23:00:00",
      "end_pst": "2025-12-01T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.2",
      "town": "10.3486061",
      "contrast": "2.8513939",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/NO2/-1",
      "start_pst": "2025-11-30T23:00:00",
      "end_pst": "2025-12-01T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.2",
      "town": "10.3",
      "contrast": "2.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/NO2/-1",
      "start_pst": "2025-11-30T23:00:00",
      "end_pst": "2025-12-01T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "5.0058646583333333333333333333333333333333333333333",
      "contrast": "2.9941353416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/PM25/+0",
      "start_pst": "2025-12-01T00:00:00",
      "end_pst": "2025-12-02T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "5.0041666666666666666666666666666666666666666666667",
      "contrast": "2.9958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/PM25/+0",
      "start_pst": "2025-12-01T00:00:00",
      "end_pst": "2025-12-02T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "5.6248045913043478260869565217391304347826086956522",
      "contrast": "3.9751954086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/NO2/+0",
      "start_pst": "2025-12-01T00:00:00",
      "end_pst": "2025-12-02T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-01",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "5.6173913043478260869565217391304347826086956521739",
      "contrast": "3.9826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/NO2/+0",
      "start_pst": "2025-12-01T00:00:00",
      "end_pst": "2025-12-02T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.2",
      "town": "10.3486061",
      "contrast": "2.8513939",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/NO2/+0",
      "start_pst": "2025-12-01T00:00:00",
      "end_pst": "2025-12-02T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.2",
      "town": "10.3",
      "contrast": "2.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/NO2/+0",
      "start_pst": "2025-12-01T00:00:00",
      "end_pst": "2025-12-02T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.7355101916666666666666666666666666666666666666667",
      "contrast": "3.2644898083333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/PM25/+1",
      "start_pst": "2025-12-01T01:00:00",
      "end_pst": "2025-12-02T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-01",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "8.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.0",
      "town": "4.7333333333333333333333333333333333333333333333333",
      "contrast": "3.2666666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/PM25/+1",
      "start_pst": "2025-12-01T01:00:00",
      "end_pst": "2025-12-02T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "5.4951637304347826086956521739130434782608695652174",
      "contrast": "4.1048362695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/NO2/+1",
      "start_pst": "2025-12-01T01:00:00",
      "end_pst": "2025-12-02T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-01",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.6",
      "town": "5.4869565217391304347826086956521739130434782608696",
      "contrast": "4.1130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/NO2/+1",
      "start_pst": "2025-12-01T01:00:00",
      "end_pst": "2025-12-02T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.2",
      "town": "10.3486061",
      "contrast": "2.8513939",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/NO2/+1",
      "start_pst": "2025-12-01T01:00:00",
      "end_pst": "2025-12-02T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-01",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.2",
      "town": "10.3",
      "contrast": "2.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-01/NO2/+1",
      "start_pst": "2025-12-01T01:00:00",
      "end_pst": "2025-12-02T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/1/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 1,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "3.6041164208333333333333333333333333333333333333333",
      "contrast": "3.9958835791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/PM25/-1",
      "start_pst": "2025-12-01T23:00:00",
      "end_pst": "2025-12-02T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-02",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "3.6041666666666666666666666666666666666666666666667",
      "contrast": "3.9958333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/PM25/-1",
      "start_pst": "2025-12-01T23:00:00",
      "end_pst": "2025-12-02T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.5884937782608695652173913043478260869565217391304",
      "contrast": "2.9115062217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/NO2/-1",
      "start_pst": "2025-12-01T23:00:00",
      "end_pst": "2025-12-02T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-02",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.5826086956521739130434782608695652173913043478261",
      "contrast": "2.9173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/NO2/-1",
      "start_pst": "2025-12-01T23:00:00",
      "end_pst": "2025-12-02T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.620615",
      "contrast": "2.279385",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/NO2/-1",
      "start_pst": "2025-12-01T23:00:00",
      "end_pst": "2025-12-02T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.6",
      "contrast": "2.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/NO2/-1",
      "start_pst": "2025-12-01T23:00:00",
      "end_pst": "2025-12-02T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "3.6929911333333333333333333333333333333333333333333",
      "contrast": "3.9070088666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/PM25/+0",
      "start_pst": "2025-12-02T00:00:00",
      "end_pst": "2025-12-03T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "3.6958333333333333333333333333333333333333333333333",
      "contrast": "3.9041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/PM25/+0",
      "start_pst": "2025-12-02T00:00:00",
      "end_pst": "2025-12-03T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.6134107782608695652173913043478260869565217391304",
      "contrast": "2.8865892217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/NO2/+0",
      "start_pst": "2025-12-02T00:00:00",
      "end_pst": "2025-12-03T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-02",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.6086956521739130434782608695652173913043478260870",
      "contrast": "2.8913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/NO2/+0",
      "start_pst": "2025-12-02T00:00:00",
      "end_pst": "2025-12-03T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.620615",
      "contrast": "2.279385",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/NO2/+0",
      "start_pst": "2025-12-02T00:00:00",
      "end_pst": "2025-12-03T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.6",
      "contrast": "2.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/NO2/+0",
      "start_pst": "2025-12-02T00:00:00",
      "end_pst": "2025-12-03T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "3.7827885875",
      "contrast": "3.8172114125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/PM25/+1",
      "start_pst": "2025-12-02T01:00:00",
      "end_pst": "2025-12-03T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-02",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.6",
      "town": "3.7875",
      "contrast": "3.8125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/PM25/+1",
      "start_pst": "2025-12-02T01:00:00",
      "end_pst": "2025-12-03T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.6164261652173913043478260869565217391304347826087",
      "contrast": "2.8835738347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/NO2/+1",
      "start_pst": "2025-12-02T01:00:00",
      "end_pst": "2025-12-03T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-02",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.6130434782608695652173913043478260869565217391304",
      "contrast": "2.8869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/NO2/+1",
      "start_pst": "2025-12-02T01:00:00",
      "end_pst": "2025-12-03T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.620615",
      "contrast": "2.279385",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/NO2/+1",
      "start_pst": "2025-12-02T01:00:00",
      "end_pst": "2025-12-03T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-02",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.9",
      "town": "8.6",
      "contrast": "2.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-02/NO2/+1",
      "start_pst": "2025-12-02T01:00:00",
      "end_pst": "2025-12-03T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/2/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 2,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.7435354041666666666666666666666666666666666666667",
      "contrast": "4.1564645958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/PM25/-1",
      "start_pst": "2025-12-02T23:00:00",
      "end_pst": "2025-12-03T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-03",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.7458333333333333333333333333333333333333333333333",
      "contrast": "4.1541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/PM25/-1",
      "start_pst": "2025-12-02T23:00:00",
      "end_pst": "2025-12-03T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.0539054565217391304347826086956521739130434782609",
      "contrast": "2.7460945434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/NO2/-1",
      "start_pst": "2025-12-02T23:00:00",
      "end_pst": "2025-12-03T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-03",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.0652173913043478260869565217391304347826086956522",
      "contrast": "2.7347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/NO2/-1",
      "start_pst": "2025-12-02T23:00:00",
      "end_pst": "2025-12-03T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "7.3845382",
      "contrast": "3.6154618",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/NO2/-1",
      "start_pst": "2025-12-02T23:00:00",
      "end_pst": "2025-12-03T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "7.4",
      "contrast": "3.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/NO2/-1",
      "start_pst": "2025-12-02T23:00:00",
      "end_pst": "2025-12-03T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.7900358208333333333333333333333333333333333333333",
      "contrast": "4.1099641791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/PM25/+0",
      "start_pst": "2025-12-03T00:00:00",
      "end_pst": "2025-12-04T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.7916666666666666666666666666666666666666666666667",
      "contrast": "4.1083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/PM25/+0",
      "start_pst": "2025-12-03T00:00:00",
      "end_pst": "2025-12-04T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.1018905",
      "contrast": "2.6981095",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/NO2/+0",
      "start_pst": "2025-12-03T00:00:00",
      "end_pst": "2025-12-04T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-03",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.1130434782608695652173913043478260869565217391304",
      "contrast": "2.6869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/NO2/+0",
      "start_pst": "2025-12-03T00:00:00",
      "end_pst": "2025-12-04T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "7.3845382",
      "contrast": "3.6154618",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/NO2/+0",
      "start_pst": "2025-12-03T00:00:00",
      "end_pst": "2025-12-04T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "7.4",
      "contrast": "3.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/NO2/+0",
      "start_pst": "2025-12-03T00:00:00",
      "end_pst": "2025-12-04T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.7629318708333333333333333333333333333333333333333",
      "contrast": "4.1370681291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/PM25/+1",
      "start_pst": "2025-12-03T01:00:00",
      "end_pst": "2025-12-04T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-03",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "3.7666666666666666666666666666666666666666666666667",
      "contrast": "4.1333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/PM25/+1",
      "start_pst": "2025-12-03T01:00:00",
      "end_pst": "2025-12-04T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.1148883217391304347826086956521739130434782608696",
      "contrast": "2.6851116782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/NO2/+1",
      "start_pst": "2025-12-03T01:00:00",
      "end_pst": "2025-12-04T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-03",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.8",
      "town": "4.1260869565217391304347826086956521739130434782609",
      "contrast": "2.6739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/NO2/+1",
      "start_pst": "2025-12-03T01:00:00",
      "end_pst": "2025-12-04T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "7.3845382",
      "contrast": "3.6154618",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/NO2/+1",
      "start_pst": "2025-12-03T01:00:00",
      "end_pst": "2025-12-04T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-03",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "7.4",
      "contrast": "3.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-03/NO2/+1",
      "start_pst": "2025-12-03T01:00:00",
      "end_pst": "2025-12-04T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/3/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 3,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "3.0750092125",
      "contrast": "4.4249907875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/PM25/-1",
      "start_pst": "2025-12-03T23:00:00",
      "end_pst": "2025-12-04T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-04",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "3.075",
      "contrast": "4.425",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/PM25/-1",
      "start_pst": "2025-12-03T23:00:00",
      "end_pst": "2025-12-04T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "3.5199777391304347826086956521739130434782608695652",
      "contrast": "2.8800222608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/NO2/-1",
      "start_pst": "2025-12-03T23:00:00",
      "end_pst": "2025-12-04T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-04",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "3.5217391304347826086956521739130434782608695652174",
      "contrast": "2.8782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/NO2/-1",
      "start_pst": "2025-12-03T23:00:00",
      "end_pst": "2025-12-04T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "5.559792",
      "contrast": "3.940208",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/NO2/-1",
      "start_pst": "2025-12-03T23:00:00",
      "end_pst": "2025-12-04T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "5.6",
      "contrast": "3.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/NO2/-1",
      "start_pst": "2025-12-03T23:00:00",
      "end_pst": "2025-12-04T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "2.936516625",
      "contrast": "4.563483375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/PM25/+0",
      "start_pst": "2025-12-04T00:00:00",
      "end_pst": "2025-12-05T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "2.9375",
      "contrast": "4.5625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/PM25/+0",
      "start_pst": "2025-12-04T00:00:00",
      "end_pst": "2025-12-05T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "3.4370588260869565217391304347826086956521739130435",
      "contrast": "2.9629411739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/NO2/+0",
      "start_pst": "2025-12-04T00:00:00",
      "end_pst": "2025-12-05T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-04",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "3.4391304347826086956521739130434782608695652173913",
      "contrast": "2.9608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/NO2/+0",
      "start_pst": "2025-12-04T00:00:00",
      "end_pst": "2025-12-05T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "5.559792",
      "contrast": "3.940208",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/NO2/+0",
      "start_pst": "2025-12-04T00:00:00",
      "end_pst": "2025-12-05T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "5.6",
      "contrast": "3.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/NO2/+0",
      "start_pst": "2025-12-04T00:00:00",
      "end_pst": "2025-12-05T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "2.8453728708333333333333333333333333333333333333333",
      "contrast": "4.6546271291666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/PM25/+1",
      "start_pst": "2025-12-04T01:00:00",
      "end_pst": "2025-12-05T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-04",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.5",
      "town": "2.8458333333333333333333333333333333333333333333333",
      "contrast": "4.6541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/PM25/+1",
      "start_pst": "2025-12-04T01:00:00",
      "end_pst": "2025-12-05T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "3.3875700913043478260869565217391304347826086956522",
      "contrast": "3.0124299086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/NO2/+1",
      "start_pst": "2025-12-04T01:00:00",
      "end_pst": "2025-12-05T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-04",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": "3.3913043478260869565217391304347826086956521739130",
      "contrast": "3.0086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/NO2/+1",
      "start_pst": "2025-12-04T01:00:00",
      "end_pst": "2025-12-05T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "5.559792",
      "contrast": "3.940208",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/NO2/+1",
      "start_pst": "2025-12-04T01:00:00",
      "end_pst": "2025-12-05T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-04",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "5.6",
      "contrast": "3.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-04/NO2/+1",
      "start_pst": "2025-12-04T01:00:00",
      "end_pst": "2025-12-05T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/4/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 4,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "1.2746112666666666666666666666666666666666666666667",
      "contrast": "3.8253887333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/PM25/-1",
      "start_pst": "2025-12-04T23:00:00",
      "end_pst": "2025-12-05T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-05",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "1.2708333333333333333333333333333333333333333333333",
      "contrast": "3.8291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/PM25/-1",
      "start_pst": "2025-12-04T23:00:00",
      "end_pst": "2025-12-05T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "2.6728995695652173913043478260869565217391304347826",
      "contrast": "5.0271004304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/NO2/-1",
      "start_pst": "2025-12-04T23:00:00",
      "end_pst": "2025-12-05T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-05",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "2.6695652173913043478260869565217391304347826086957",
      "contrast": "5.0304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/NO2/-1",
      "start_pst": "2025-12-04T23:00:00",
      "end_pst": "2025-12-05T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "4.1931071",
      "contrast": "9.3068929",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/NO2/-1",
      "start_pst": "2025-12-04T23:00:00",
      "end_pst": "2025-12-05T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "4.2",
      "contrast": "9.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/NO2/-1",
      "start_pst": "2025-12-04T23:00:00",
      "end_pst": "2025-12-05T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "1.270883975",
      "contrast": "3.829116025",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/PM25/+0",
      "start_pst": "2025-12-05T00:00:00",
      "end_pst": "2025-12-06T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "1.2666666666666666666666666666666666666666666666667",
      "contrast": "3.8333333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/PM25/+0",
      "start_pst": "2025-12-05T00:00:00",
      "end_pst": "2025-12-06T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "2.6714963521739130434782608695652173913043478260870",
      "contrast": "5.0285036478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/NO2/+0",
      "start_pst": "2025-12-05T00:00:00",
      "end_pst": "2025-12-06T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-05",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "2.6695652173913043478260869565217391304347826086957",
      "contrast": "5.0304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/NO2/+0",
      "start_pst": "2025-12-05T00:00:00",
      "end_pst": "2025-12-06T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "4.1931071",
      "contrast": "9.3068929",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/NO2/+0",
      "start_pst": "2025-12-05T00:00:00",
      "end_pst": "2025-12-06T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "4.2",
      "contrast": "9.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/NO2/+0",
      "start_pst": "2025-12-05T00:00:00",
      "end_pst": "2025-12-06T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "1.2991768083333333333333333333333333333333333333333",
      "contrast": "3.8008231916666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/PM25/+1",
      "start_pst": "2025-12-05T01:00:00",
      "end_pst": "2025-12-06T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-05",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.1",
      "town": "1.2916666666666666666666666666666666666666666666667",
      "contrast": "3.8083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/PM25/+1",
      "start_pst": "2025-12-05T01:00:00",
      "end_pst": "2025-12-06T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "2.7181821347826086956521739130434782608695652173913",
      "contrast": "4.9818178652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/NO2/+1",
      "start_pst": "2025-12-05T01:00:00",
      "end_pst": "2025-12-06T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-05",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.7",
      "town": "2.7173913043478260869565217391304347826086956521739",
      "contrast": "4.9826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/NO2/+1",
      "start_pst": "2025-12-05T01:00:00",
      "end_pst": "2025-12-06T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "4.1931071",
      "contrast": "9.3068929",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/NO2/+1",
      "start_pst": "2025-12-05T01:00:00",
      "end_pst": "2025-12-06T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-05",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.5",
      "town": "4.2",
      "contrast": "9.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-05/NO2/+1",
      "start_pst": "2025-12-05T01:00:00",
      "end_pst": "2025-12-06T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/5/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 5,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "2.9047811125",
      "contrast": "2.8952188875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/PM25/-1",
      "start_pst": "2025-12-05T23:00:00",
      "end_pst": "2025-12-06T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-06",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "2.9125",
      "contrast": "2.8875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/PM25/-1",
      "start_pst": "2025-12-05T23:00:00",
      "end_pst": "2025-12-06T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "7.0382730260869565217391304347826086956521739130435",
      "contrast": "1.5617269739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/NO2/-1",
      "start_pst": "2025-12-05T23:00:00",
      "end_pst": "2025-12-06T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-06",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "7.0521739130434782608695652173913043478260869565217",
      "contrast": "1.5478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/NO2/-1",
      "start_pst": "2025-12-05T23:00:00",
      "end_pst": "2025-12-06T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.8",
      "town": "14.0805149",
      "contrast": "-0.2805149",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/NO2/-1",
      "start_pst": "2025-12-05T23:00:00",
      "end_pst": "2025-12-06T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.8",
      "town": "14.1",
      "contrast": "-0.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/NO2/-1",
      "start_pst": "2025-12-05T23:00:00",
      "end_pst": "2025-12-06T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "3.0562803208333333333333333333333333333333333333333",
      "contrast": "2.7437196791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/PM25/+0",
      "start_pst": "2025-12-06T00:00:00",
      "end_pst": "2025-12-07T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "3.0625",
      "contrast": "2.7375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/PM25/+0",
      "start_pst": "2025-12-06T00:00:00",
      "end_pst": "2025-12-07T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "7.4119554",
      "contrast": "1.1880446",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/NO2/+0",
      "start_pst": "2025-12-06T00:00:00",
      "end_pst": "2025-12-07T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-06",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "7.4260869565217391304347826086956521739130434782609",
      "contrast": "1.1739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/NO2/+0",
      "start_pst": "2025-12-06T00:00:00",
      "end_pst": "2025-12-07T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.8",
      "town": "14.0805149",
      "contrast": "-0.2805149",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/NO2/+0",
      "start_pst": "2025-12-06T00:00:00",
      "end_pst": "2025-12-07T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.8",
      "town": "14.1",
      "contrast": "-0.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/NO2/+0",
      "start_pst": "2025-12-06T00:00:00",
      "end_pst": "2025-12-07T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "3.2051478666666666666666666666666666666666666666667",
      "contrast": "2.5948521333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/PM25/+1",
      "start_pst": "2025-12-06T01:00:00",
      "end_pst": "2025-12-07T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-06",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": "3.2125",
      "contrast": "2.5875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/PM25/+1",
      "start_pst": "2025-12-06T01:00:00",
      "end_pst": "2025-12-07T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "7.6577366695652173913043478260869565217391304347826",
      "contrast": "0.9422633304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/NO2/+1",
      "start_pst": "2025-12-06T01:00:00",
      "end_pst": "2025-12-07T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-06",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.6",
      "town": "7.6695652173913043478260869565217391304347826086957",
      "contrast": "0.9304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/NO2/+1",
      "start_pst": "2025-12-06T01:00:00",
      "end_pst": "2025-12-07T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.8",
      "town": "14.0805149",
      "contrast": "-0.2805149",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/NO2/+1",
      "start_pst": "2025-12-06T01:00:00",
      "end_pst": "2025-12-07T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-06",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.8",
      "town": "14.1",
      "contrast": "-0.3",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-06/NO2/+1",
      "start_pst": "2025-12-06T01:00:00",
      "end_pst": "2025-12-07T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/6/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 6,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.1324759625",
      "contrast": "3.3675240375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/PM25/-1",
      "start_pst": "2025-12-06T23:00:00",
      "end_pst": "2025-12-07T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-07",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.1416666666666666666666666666666666666666666666667",
      "contrast": "3.3583333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/PM25/-1",
      "start_pst": "2025-12-06T23:00:00",
      "end_pst": "2025-12-07T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "8.7184726826086956521739130434782608695652173913043",
      "contrast": "5.7815273173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/NO2/-1",
      "start_pst": "2025-12-06T23:00:00",
      "end_pst": "2025-12-07T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-07",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "8.7260869565217391304347826086956521739130434782609",
      "contrast": "5.7739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/NO2/-1",
      "start_pst": "2025-12-06T23:00:00",
      "end_pst": "2025-12-07T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.6",
      "town": "15.124855",
      "contrast": "14.475145",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/NO2/-1",
      "start_pst": "2025-12-06T23:00:00",
      "end_pst": "2025-12-07T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.6",
      "town": "15.1",
      "contrast": "14.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/NO2/-1",
      "start_pst": "2025-12-06T23:00:00",
      "end_pst": "2025-12-07T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.0595388791666666666666666666666666666666666666667",
      "contrast": "3.4404611208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/PM25/+0",
      "start_pst": "2025-12-07T00:00:00",
      "end_pst": "2025-12-08T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "3.0708333333333333333333333333333333333333333333333",
      "contrast": "3.4291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/PM25/+0",
      "start_pst": "2025-12-07T00:00:00",
      "end_pst": "2025-12-08T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "8.4367931347826086956521739130434782608695652173913",
      "contrast": "6.0632068652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/NO2/+0",
      "start_pst": "2025-12-07T00:00:00",
      "end_pst": "2025-12-08T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-07",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "8.4434782608695652173913043478260869565217391304348",
      "contrast": "6.0565217391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/NO2/+0",
      "start_pst": "2025-12-07T00:00:00",
      "end_pst": "2025-12-08T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.6",
      "town": "15.124855",
      "contrast": "14.475145",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/NO2/+0",
      "start_pst": "2025-12-07T00:00:00",
      "end_pst": "2025-12-08T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.6",
      "town": "15.1",
      "contrast": "14.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/NO2/+0",
      "start_pst": "2025-12-07T00:00:00",
      "end_pst": "2025-12-08T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.9756972958333333333333333333333333333333333333333",
      "contrast": "3.5243027041666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/PM25/+1",
      "start_pst": "2025-12-07T01:00:00",
      "end_pst": "2025-12-08T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-07",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.5",
      "town": "2.9875",
      "contrast": "3.5125",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/PM25/+1",
      "start_pst": "2025-12-07T01:00:00",
      "end_pst": "2025-12-08T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "8.4608920409090909090909090909090909090909090909091",
      "contrast": "6.0391079590909090909090909090909090909090909090909",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/NO2/+1",
      "start_pst": "2025-12-07T01:00:00",
      "end_pst": "2025-12-08T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-07",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.5",
      "town": "8.4681818181818181818181818181818181818181818181818",
      "contrast": "6.0318181818181818181818181818181818181818181818182",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/NO2/+1",
      "start_pst": "2025-12-07T01:00:00",
      "end_pst": "2025-12-08T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.6",
      "town": "15.124855",
      "contrast": "14.475145",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/NO2/+1",
      "start_pst": "2025-12-07T01:00:00",
      "end_pst": "2025-12-08T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-07",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "29.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "29.6",
      "town": "15.1",
      "contrast": "14.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-07/NO2/+1",
      "start_pst": "2025-12-07T01:00:00",
      "end_pst": "2025-12-08T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/7/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 7,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.5766680833333333333333333333333333333333333333333",
      "contrast": "3.3233319166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/PM25/-1",
      "start_pst": "2025-12-07T23:00:00",
      "end_pst": "2025-12-08T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-08",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.5791666666666666666666666666666666666666666666667",
      "contrast": "3.3208333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/PM25/-1",
      "start_pst": "2025-12-07T23:00:00",
      "end_pst": "2025-12-08T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "10.2666350",
      "contrast": "6.1333650",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/NO2/-1",
      "start_pst": "2025-12-07T23:00:00",
      "end_pst": "2025-12-08T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-08",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "10.269565217391304347826086956521739130434782608696",
      "contrast": "6.130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/NO2/-1",
      "start_pst": "2025-12-07T23:00:00",
      "end_pst": "2025-12-08T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "35.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "35.7",
      "town": "25.1064663",
      "contrast": "10.5935337",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/NO2/-1",
      "start_pst": "2025-12-07T23:00:00",
      "end_pst": "2025-12-08T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "35.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "35.7",
      "town": "25.1",
      "contrast": "10.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/NO2/-1",
      "start_pst": "2025-12-07T23:00:00",
      "end_pst": "2025-12-08T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.4570674583333333333333333333333333333333333333333",
      "contrast": "3.4429325416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/PM25/+0",
      "start_pst": "2025-12-08T00:00:00",
      "end_pst": "2025-12-09T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.4583333333333333333333333333333333333333333333333",
      "contrast": "3.4416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/PM25/+0",
      "start_pst": "2025-12-08T00:00:00",
      "end_pst": "2025-12-09T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "10.565804045454545454545454545454545454545454545455",
      "contrast": "5.834195954545454545454545454545454545454545454545",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/NO2/+0",
      "start_pst": "2025-12-08T00:00:00",
      "end_pst": "2025-12-09T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-08",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "10.568181818181818181818181818181818181818181818182",
      "contrast": "5.831818181818181818181818181818181818181818181818",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/NO2/+0",
      "start_pst": "2025-12-08T00:00:00",
      "end_pst": "2025-12-09T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "35.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "35.7",
      "town": "25.1064663",
      "contrast": "10.5935337",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/NO2/+0",
      "start_pst": "2025-12-08T00:00:00",
      "end_pst": "2025-12-09T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "35.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "35.7",
      "town": "25.1",
      "contrast": "10.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/NO2/+0",
      "start_pst": "2025-12-08T00:00:00",
      "end_pst": "2025-12-09T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.3511516208333333333333333333333333333333333333333",
      "contrast": "3.5488483791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/PM25/+1",
      "start_pst": "2025-12-08T01:00:00",
      "end_pst": "2025-12-09T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-08",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.3541666666666666666666666666666666666666666666667",
      "contrast": "3.5458333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/PM25/+1",
      "start_pst": "2025-12-08T01:00:00",
      "end_pst": "2025-12-09T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "10.2251970",
      "contrast": "6.1748030",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/NO2/+1",
      "start_pst": "2025-12-08T01:00:00",
      "end_pst": "2025-12-09T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-08",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.4",
      "town": "10.226086956521739130434782608695652173913043478261",
      "contrast": "6.173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/NO2/+1",
      "start_pst": "2025-12-08T01:00:00",
      "end_pst": "2025-12-09T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "35.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "35.7",
      "town": "25.1064663",
      "contrast": "10.5935337",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/NO2/+1",
      "start_pst": "2025-12-08T01:00:00",
      "end_pst": "2025-12-09T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-08",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "35.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "35.7",
      "town": "25.1",
      "contrast": "10.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-08/NO2/+1",
      "start_pst": "2025-12-08T01:00:00",
      "end_pst": "2025-12-09T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/8/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 8,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "6.5984133208333333333333333333333333333333333333333",
      "contrast": "0.6015866791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/PM25/-1",
      "start_pst": "2025-12-08T23:00:00",
      "end_pst": "2025-12-09T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-09",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "6.6083333333333333333333333333333333333333333333333",
      "contrast": "0.5916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/PM25/-1",
      "start_pst": "2025-12-08T23:00:00",
      "end_pst": "2025-12-09T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "8.5424575181818181818181818181818181818181818181818",
      "contrast": "4.2575424818181818181818181818181818181818181818182",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/NO2/-1",
      "start_pst": "2025-12-08T23:00:00",
      "end_pst": "2025-12-09T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-09",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "8.5363636363636363636363636363636363636363636363636",
      "contrast": "4.2636363636363636363636363636363636363636363636364",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/NO2/-1",
      "start_pst": "2025-12-08T23:00:00",
      "end_pst": "2025-12-09T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.8",
      "town": "15.5933819",
      "contrast": "9.2066181",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/NO2/-1",
      "start_pst": "2025-12-08T23:00:00",
      "end_pst": "2025-12-09T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.8",
      "town": "15.6",
      "contrast": "9.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/NO2/-1",
      "start_pst": "2025-12-08T23:00:00",
      "end_pst": "2025-12-09T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "6.6524707375",
      "contrast": "0.5475292625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/PM25/+0",
      "start_pst": "2025-12-09T00:00:00",
      "end_pst": "2025-12-10T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "6.6625",
      "contrast": "0.5375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/PM25/+0",
      "start_pst": "2025-12-09T00:00:00",
      "end_pst": "2025-12-10T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "8.3905767608695652173913043478260869565217391304348",
      "contrast": "4.4094232391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/NO2/+0",
      "start_pst": "2025-12-09T00:00:00",
      "end_pst": "2025-12-10T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-09",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "8.3826086956521739130434782608695652173913043478261",
      "contrast": "4.4173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/NO2/+0",
      "start_pst": "2025-12-09T00:00:00",
      "end_pst": "2025-12-10T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.8",
      "town": "15.5933819",
      "contrast": "9.2066181",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/NO2/+0",
      "start_pst": "2025-12-09T00:00:00",
      "end_pst": "2025-12-10T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.8",
      "town": "15.6",
      "contrast": "9.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/NO2/+0",
      "start_pst": "2025-12-09T00:00:00",
      "end_pst": "2025-12-10T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "6.6666627791666666666666666666666666666666666666667",
      "contrast": "0.5333372208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/PM25/+1",
      "start_pst": "2025-12-09T01:00:00",
      "end_pst": "2025-12-10T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-09",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": "6.675",
      "contrast": "0.525",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/PM25/+1",
      "start_pst": "2025-12-09T01:00:00",
      "end_pst": "2025-12-10T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "8.4051342391304347826086956521739130434782608695652",
      "contrast": "4.3948657608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/NO2/+1",
      "start_pst": "2025-12-09T01:00:00",
      "end_pst": "2025-12-10T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-09",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.8",
      "town": "8.4",
      "contrast": "4.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/NO2/+1",
      "start_pst": "2025-12-09T01:00:00",
      "end_pst": "2025-12-10T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.8",
      "town": "15.5933819",
      "contrast": "9.2066181",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/NO2/+1",
      "start_pst": "2025-12-09T01:00:00",
      "end_pst": "2025-12-10T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-09",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.8",
      "town": "15.6",
      "contrast": "9.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-09/NO2/+1",
      "start_pst": "2025-12-09T01:00:00",
      "end_pst": "2025-12-10T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/9/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 9,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.4037005458333333333333333333333333333333333333333",
      "contrast": "3.5962994541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/PM25/-1",
      "start_pst": "2025-12-09T23:00:00",
      "end_pst": "2025-12-10T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-10",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.4",
      "contrast": "3.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/PM25/-1",
      "start_pst": "2025-12-09T23:00:00",
      "end_pst": "2025-12-10T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.1",
      "town": "6.1465667391304347826086956521739130434782608695652",
      "contrast": "9.9534332608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/NO2/-1",
      "start_pst": "2025-12-09T23:00:00",
      "end_pst": "2025-12-10T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-10",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.1",
      "town": "6.1521739130434782608695652173913043478260869565217",
      "contrast": "9.9478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/NO2/-1",
      "start_pst": "2025-12-09T23:00:00",
      "end_pst": "2025-12-10T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.9",
      "town": "11.6930428",
      "contrast": "14.2069572",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/NO2/-1",
      "start_pst": "2025-12-09T23:00:00",
      "end_pst": "2025-12-10T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.9",
      "town": "11.7",
      "contrast": "14.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/NO2/-1",
      "start_pst": "2025-12-09T23:00:00",
      "end_pst": "2025-12-10T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.3616869625",
      "contrast": "3.6383130375",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/PM25/+0",
      "start_pst": "2025-12-10T00:00:00",
      "end_pst": "2025-12-11T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.3583333333333333333333333333333333333333333333333",
      "contrast": "3.6416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/PM25/+0",
      "start_pst": "2025-12-10T00:00:00",
      "end_pst": "2025-12-11T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.1",
      "town": "6.0971220391304347826086956521739130434782608695652",
      "contrast": "10.002877960869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/NO2/+0",
      "start_pst": "2025-12-10T00:00:00",
      "end_pst": "2025-12-11T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-10",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.1",
      "town": "6.1043478260869565217391304347826086956521739130435",
      "contrast": "9.9956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/NO2/+0",
      "start_pst": "2025-12-10T00:00:00",
      "end_pst": "2025-12-11T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.9",
      "town": "11.6930428",
      "contrast": "14.2069572",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/NO2/+0",
      "start_pst": "2025-12-10T00:00:00",
      "end_pst": "2025-12-11T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.9",
      "town": "11.7",
      "contrast": "14.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/NO2/+0",
      "start_pst": "2025-12-10T00:00:00",
      "end_pst": "2025-12-11T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.3493568375",
      "contrast": "3.6506431625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/PM25/+1",
      "start_pst": "2025-12-10T01:00:00",
      "end_pst": "2025-12-11T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-10",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.0",
      "town": "2.3458333333333333333333333333333333333333333333333",
      "contrast": "3.6541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/PM25/+1",
      "start_pst": "2025-12-10T01:00:00",
      "end_pst": "2025-12-11T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.1",
      "town": "6.1076489956521739130434782608695652173913043478261",
      "contrast": "9.9923510043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/NO2/+1",
      "start_pst": "2025-12-10T01:00:00",
      "end_pst": "2025-12-11T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-10",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.1",
      "town": "6.1130434782608695652173913043478260869565217391304",
      "contrast": "9.9869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/NO2/+1",
      "start_pst": "2025-12-10T01:00:00",
      "end_pst": "2025-12-11T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.9",
      "town": "11.6930428",
      "contrast": "14.2069572",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/NO2/+1",
      "start_pst": "2025-12-10T01:00:00",
      "end_pst": "2025-12-11T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-10",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.9",
      "town": "11.7",
      "contrast": "14.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-10/NO2/+1",
      "start_pst": "2025-12-10T01:00:00",
      "end_pst": "2025-12-11T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/10/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 10,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "3.9613710833333333333333333333333333333333333333333",
      "contrast": "3.3386289166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/PM25/-1",
      "start_pst": "2025-12-10T23:00:00",
      "end_pst": "2025-12-11T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-11",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "3.9583333333333333333333333333333333333333333333333",
      "contrast": "3.3416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/PM25/-1",
      "start_pst": "2025-12-10T23:00:00",
      "end_pst": "2025-12-11T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.1950926217391304347826086956521739130434782608696",
      "contrast": "8.0049073782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/NO2/-1",
      "start_pst": "2025-12-10T23:00:00",
      "end_pst": "2025-12-11T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-11",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.2086956521739130434782608695652173913043478260870",
      "contrast": "7.9913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/NO2/-1",
      "start_pst": "2025-12-10T23:00:00",
      "end_pst": "2025-12-11T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "11.9043398",
      "contrast": "8.4956602",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/NO2/-1",
      "start_pst": "2025-12-10T23:00:00",
      "end_pst": "2025-12-11T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "11.9",
      "contrast": "8.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/NO2/-1",
      "start_pst": "2025-12-10T23:00:00",
      "end_pst": "2025-12-11T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.2212075833333333333333333333333333333333333333333",
      "contrast": "3.0787924166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/PM25/+0",
      "start_pst": "2025-12-11T00:00:00",
      "end_pst": "2025-12-12T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.2166666666666666666666666666666666666666666666667",
      "contrast": "3.0833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/PM25/+0",
      "start_pst": "2025-12-11T00:00:00",
      "end_pst": "2025-12-12T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.1320945347826086956521739130434782608695652173913",
      "contrast": "8.0679054652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/NO2/+0",
      "start_pst": "2025-12-11T00:00:00",
      "end_pst": "2025-12-12T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-11",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.1478260869565217391304347826086956521739130434783",
      "contrast": "8.0521739130434782608695652173913043478260869565217",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/NO2/+0",
      "start_pst": "2025-12-11T00:00:00",
      "end_pst": "2025-12-12T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "11.9043398",
      "contrast": "8.4956602",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/NO2/+0",
      "start_pst": "2025-12-11T00:00:00",
      "end_pst": "2025-12-12T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "11.9",
      "contrast": "8.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/NO2/+0",
      "start_pst": "2025-12-11T00:00:00",
      "end_pst": "2025-12-12T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.4481052458333333333333333333333333333333333333333",
      "contrast": "2.8518947541666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/PM25/+1",
      "start_pst": "2025-12-11T01:00:00",
      "end_pst": "2025-12-12T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-11",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": "4.4458333333333333333333333333333333333333333333333",
      "contrast": "2.8541666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/PM25/+1",
      "start_pst": "2025-12-11T01:00:00",
      "end_pst": "2025-12-12T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.1218512739130434782608695652173913043478260869565",
      "contrast": "8.0781487260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/NO2/+1",
      "start_pst": "2025-12-11T01:00:00",
      "end_pst": "2025-12-12T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-11",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.1391304347826086956521739130434782608695652173913",
      "contrast": "8.0608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/NO2/+1",
      "start_pst": "2025-12-11T01:00:00",
      "end_pst": "2025-12-12T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "11.9043398",
      "contrast": "8.4956602",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/NO2/+1",
      "start_pst": "2025-12-11T01:00:00",
      "end_pst": "2025-12-12T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-11",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "20.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "20.4",
      "town": "11.9",
      "contrast": "8.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-11/NO2/+1",
      "start_pst": "2025-12-11T01:00:00",
      "end_pst": "2025-12-12T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/11/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 11,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.4145466",
      "contrast": "3.4854534",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/PM25/-1",
      "start_pst": "2025-12-11T23:00:00",
      "end_pst": "2025-12-12T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-12",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.4166666666666666666666666666666666666666666666667",
      "contrast": "3.4833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/PM25/-1",
      "start_pst": "2025-12-11T23:00:00",
      "end_pst": "2025-12-12T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "3.9168619695652173913043478260869565217391304347826",
      "contrast": "8.2831380304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/NO2/-1",
      "start_pst": "2025-12-11T23:00:00",
      "end_pst": "2025-12-12T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-12",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "3.9130434782608695652173913043478260869565217391304",
      "contrast": "8.2869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/NO2/-1",
      "start_pst": "2025-12-11T23:00:00",
      "end_pst": "2025-12-12T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.0",
      "town": "10.4351673",
      "contrast": "11.5648327",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/NO2/-1",
      "start_pst": "2025-12-11T23:00:00",
      "end_pst": "2025-12-12T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.0",
      "town": "10.4",
      "contrast": "11.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/NO2/-1",
      "start_pst": "2025-12-11T23:00:00",
      "end_pst": "2025-12-12T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.180157475",
      "contrast": "3.719842525",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/PM25/+0",
      "start_pst": "2025-12-12T00:00:00",
      "end_pst": "2025-12-13T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "2.1833333333333333333333333333333333333333333333333",
      "contrast": "3.7166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/PM25/+0",
      "start_pst": "2025-12-12T00:00:00",
      "end_pst": "2025-12-13T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "3.8853684043478260869565217391304347826086956521739",
      "contrast": "8.3146315956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/NO2/+0",
      "start_pst": "2025-12-12T00:00:00",
      "end_pst": "2025-12-13T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-12",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "3.8782608695652173913043478260869565217391304347826",
      "contrast": "8.3217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/NO2/+0",
      "start_pst": "2025-12-12T00:00:00",
      "end_pst": "2025-12-13T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.0",
      "town": "10.4351673",
      "contrast": "11.5648327",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/NO2/+0",
      "start_pst": "2025-12-12T00:00:00",
      "end_pst": "2025-12-13T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.0",
      "town": "10.4",
      "contrast": "11.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/NO2/+0",
      "start_pst": "2025-12-12T00:00:00",
      "end_pst": "2025-12-13T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "1.9912003541666666666666666666666666666666666666667",
      "contrast": "3.9087996458333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/PM25/+1",
      "start_pst": "2025-12-12T01:00:00",
      "end_pst": "2025-12-13T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-12",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": "1.9916666666666666666666666666666666666666666666667",
      "contrast": "3.9083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/PM25/+1",
      "start_pst": "2025-12-12T01:00:00",
      "end_pst": "2025-12-13T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "3.8173624478260869565217391304347826086956521739130",
      "contrast": "8.3826375521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/NO2/+1",
      "start_pst": "2025-12-12T01:00:00",
      "end_pst": "2025-12-13T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-12",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.2",
      "town": "3.8086956521739130434782608695652173913043478260870",
      "contrast": "8.3913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/NO2/+1",
      "start_pst": "2025-12-12T01:00:00",
      "end_pst": "2025-12-13T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.0",
      "town": "10.4351673",
      "contrast": "11.5648327",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/NO2/+1",
      "start_pst": "2025-12-12T01:00:00",
      "end_pst": "2025-12-13T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-12",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.0",
      "town": "10.4",
      "contrast": "11.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-12/NO2/+1",
      "start_pst": "2025-12-12T01:00:00",
      "end_pst": "2025-12-13T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/12/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 12,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "2.9459379041666666666666666666666666666666666666667",
      "contrast": "3.3540620958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/PM25/-1",
      "start_pst": "2025-12-12T23:00:00",
      "end_pst": "2025-12-13T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-13",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "2.95",
      "contrast": "3.35",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/PM25/-1",
      "start_pst": "2025-12-12T23:00:00",
      "end_pst": "2025-12-13T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.6",
      "town": "3.7744307695652173913043478260869565217391304347826",
      "contrast": "8.8255692304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/NO2/-1",
      "start_pst": "2025-12-12T23:00:00",
      "end_pst": "2025-12-13T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-13",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.6",
      "town": "3.7695652173913043478260869565217391304347826086957",
      "contrast": "8.8304347826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/NO2/-1",
      "start_pst": "2025-12-12T23:00:00",
      "end_pst": "2025-12-13T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.5",
      "town": "7.3577461",
      "contrast": "10.1422539",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/NO2/-1",
      "start_pst": "2025-12-12T23:00:00",
      "end_pst": "2025-12-13T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.5",
      "town": "7.4",
      "contrast": "10.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/NO2/-1",
      "start_pst": "2025-12-12T23:00:00",
      "end_pst": "2025-12-13T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.0780175208333333333333333333333333333333333333333",
      "contrast": "3.2219824791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/PM25/+0",
      "start_pst": "2025-12-13T00:00:00",
      "end_pst": "2025-12-14T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.0833333333333333333333333333333333333333333333333",
      "contrast": "3.2166666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/PM25/+0",
      "start_pst": "2025-12-13T00:00:00",
      "end_pst": "2025-12-14T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.6",
      "town": "3.9074443347826086956521739130434782608695652173913",
      "contrast": "8.6925556652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/NO2/+0",
      "start_pst": "2025-12-13T00:00:00",
      "end_pst": "2025-12-14T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-13",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.6",
      "town": "3.9043478260869565217391304347826086956521739130435",
      "contrast": "8.6956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/NO2/+0",
      "start_pst": "2025-12-13T00:00:00",
      "end_pst": "2025-12-14T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.5",
      "town": "7.3577461",
      "contrast": "10.1422539",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/NO2/+0",
      "start_pst": "2025-12-13T00:00:00",
      "end_pst": "2025-12-14T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.5",
      "town": "7.4",
      "contrast": "10.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/NO2/+0",
      "start_pst": "2025-12-13T00:00:00",
      "end_pst": "2025-12-14T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.1512630208333333333333333333333333333333333333333",
      "contrast": "3.1487369791666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/PM25/+1",
      "start_pst": "2025-12-13T01:00:00",
      "end_pst": "2025-12-14T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-13",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.1583333333333333333333333333333333333333333333333",
      "contrast": "3.1416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/PM25/+1",
      "start_pst": "2025-12-13T01:00:00",
      "end_pst": "2025-12-14T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.6",
      "town": "4.0772691130434782608695652173913043478260869565217",
      "contrast": "8.5227308869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/NO2/+1",
      "start_pst": "2025-12-13T01:00:00",
      "end_pst": "2025-12-14T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-13",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.6",
      "town": "4.0739130434782608695652173913043478260869565217391",
      "contrast": "8.5260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/NO2/+1",
      "start_pst": "2025-12-13T01:00:00",
      "end_pst": "2025-12-14T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.5",
      "town": "7.3577461",
      "contrast": "10.1422539",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/NO2/+1",
      "start_pst": "2025-12-13T01:00:00",
      "end_pst": "2025-12-14T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-13",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "17.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "17.5",
      "town": "7.4",
      "contrast": "10.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-13/NO2/+1",
      "start_pst": "2025-12-13T01:00:00",
      "end_pst": "2025-12-14T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/13/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 13,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.2017988",
      "contrast": "3.0982012",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/PM25/-1",
      "start_pst": "2025-12-13T23:00:00",
      "end_pst": "2025-12-14T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-14",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.2083333333333333333333333333333333333333333333333",
      "contrast": "3.0916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/PM25/-1",
      "start_pst": "2025-12-13T23:00:00",
      "end_pst": "2025-12-14T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.4",
      "town": "7.0898824869565217391304347826086956521739130434783",
      "contrast": "11.310117513043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/NO2/-1",
      "start_pst": "2025-12-13T23:00:00",
      "end_pst": "2025-12-14T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-14",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.4",
      "town": "7.0826086956521739130434782608695652173913043478261",
      "contrast": "11.317391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/NO2/-1",
      "start_pst": "2025-12-13T23:00:00",
      "end_pst": "2025-12-14T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.7",
      "town": "13.1355762",
      "contrast": "14.5644238",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/NO2/-1",
      "start_pst": "2025-12-13T23:00:00",
      "end_pst": "2025-12-14T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.7",
      "town": "13.1",
      "contrast": "14.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/NO2/-1",
      "start_pst": "2025-12-13T23:00:00",
      "end_pst": "2025-12-14T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.0526454333333333333333333333333333333333333333333",
      "contrast": "3.2473545666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/PM25/+0",
      "start_pst": "2025-12-14T00:00:00",
      "end_pst": "2025-12-15T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.0583333333333333333333333333333333333333333333333",
      "contrast": "3.2416666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/PM25/+0",
      "start_pst": "2025-12-14T00:00:00",
      "end_pst": "2025-12-15T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.4",
      "town": "7.2495955086956521739130434782608695652173913043478",
      "contrast": "11.150404491304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/NO2/+0",
      "start_pst": "2025-12-14T00:00:00",
      "end_pst": "2025-12-15T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-14",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.4",
      "town": "7.2434782608695652173913043478260869565217391304348",
      "contrast": "11.156521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/NO2/+0",
      "start_pst": "2025-12-14T00:00:00",
      "end_pst": "2025-12-15T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.7",
      "town": "13.1355762",
      "contrast": "14.5644238",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/NO2/+0",
      "start_pst": "2025-12-14T00:00:00",
      "end_pst": "2025-12-15T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.7",
      "town": "13.1",
      "contrast": "14.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/NO2/+0",
      "start_pst": "2025-12-14T00:00:00",
      "end_pst": "2025-12-15T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "2.9681366833333333333333333333333333333333333333333",
      "contrast": "3.3318633166666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/PM25/+1",
      "start_pst": "2025-12-14T01:00:00",
      "end_pst": "2025-12-15T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-14",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "2.9708333333333333333333333333333333333333333333333",
      "contrast": "3.3291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/PM25/+1",
      "start_pst": "2025-12-14T01:00:00",
      "end_pst": "2025-12-15T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.4",
      "town": "7.2699992043478260869565217391304347826086956521739",
      "contrast": "11.130000795652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/NO2/+1",
      "start_pst": "2025-12-14T01:00:00",
      "end_pst": "2025-12-15T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-14",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "18.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "18.4",
      "town": "7.2652173913043478260869565217391304347826086956522",
      "contrast": "11.134782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/NO2/+1",
      "start_pst": "2025-12-14T01:00:00",
      "end_pst": "2025-12-15T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.7",
      "town": "13.1355762",
      "contrast": "14.5644238",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/NO2/+1",
      "start_pst": "2025-12-14T01:00:00",
      "end_pst": "2025-12-15T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-14",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "27.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "27.7",
      "town": "13.1",
      "contrast": "14.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-14/NO2/+1",
      "start_pst": "2025-12-14T01:00:00",
      "end_pst": "2025-12-15T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/14/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 14,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "1.835191315",
      "contrast": "4.264808685",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/PM25/-1",
      "start_pst": "2025-12-14T23:00:00",
      "end_pst": "2025-12-15T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-15",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "1.825",
      "contrast": "4.275",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/PM25/-1",
      "start_pst": "2025-12-14T23:00:00",
      "end_pst": "2025-12-15T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.327801165",
      "contrast": "8.872198835",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/NO2/-1",
      "start_pst": "2025-12-14T23:00:00",
      "end_pst": "2025-12-15T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-15",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.335",
      "contrast": "8.865",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/NO2/-1",
      "start_pst": "2025-12-14T23:00:00",
      "end_pst": "2025-12-15T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.4",
      "town": "9.9034004",
      "contrast": "18.4965996",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/NO2/-1",
      "start_pst": "2025-12-14T23:00:00",
      "end_pst": "2025-12-15T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.4",
      "town": "9.9",
      "contrast": "18.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/NO2/-1",
      "start_pst": "2025-12-14T23:00:00",
      "end_pst": "2025-12-15T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "1.948658515",
      "contrast": "4.151341485",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/PM25/+0",
      "start_pst": "2025-12-15T00:00:00",
      "end_pst": "2025-12-16T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "1.94",
      "contrast": "4.16",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/PM25/+0",
      "start_pst": "2025-12-15T00:00:00",
      "end_pst": "2025-12-16T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.167868145",
      "contrast": "9.032131855",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/NO2/+0",
      "start_pst": "2025-12-15T00:00:00",
      "end_pst": "2025-12-16T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-15",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.175",
      "contrast": "9.025",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/NO2/+0",
      "start_pst": "2025-12-15T00:00:00",
      "end_pst": "2025-12-16T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.4",
      "town": "9.9034004",
      "contrast": "18.4965996",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/NO2/+0",
      "start_pst": "2025-12-15T00:00:00",
      "end_pst": "2025-12-16T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.4",
      "town": "9.9",
      "contrast": "18.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/NO2/+0",
      "start_pst": "2025-12-15T00:00:00",
      "end_pst": "2025-12-16T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "2.049312815",
      "contrast": "4.050687185",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/PM25/+1",
      "start_pst": "2025-12-15T01:00:00",
      "end_pst": "2025-12-16T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-15",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.1",
      "town": "2.045",
      "contrast": "4.055",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/PM25/+1",
      "start_pst": "2025-12-15T01:00:00",
      "end_pst": "2025-12-16T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.04641375",
      "contrast": "9.15358625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/NO2/+1",
      "start_pst": "2025-12-15T01:00:00",
      "end_pst": "2025-12-16T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-15",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "5.055",
      "contrast": "9.145",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/NO2/+1",
      "start_pst": "2025-12-15T01:00:00",
      "end_pst": "2025-12-16T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.4",
      "town": "9.9034004",
      "contrast": "18.4965996",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/NO2/+1",
      "start_pst": "2025-12-15T01:00:00",
      "end_pst": "2025-12-16T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-15",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.4",
      "town": "9.9",
      "contrast": "18.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 20,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-15/NO2/+1",
      "start_pst": "2025-12-15T01:00:00",
      "end_pst": "2025-12-16T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/15/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 15,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "2.3903046791666666666666666666666666666666666666667",
      "contrast": "2.4096953208333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/PM25/-1",
      "start_pst": "2025-12-15T23:00:00",
      "end_pst": "2025-12-16T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-16",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "2.3916666666666666666666666666666666666666666666667",
      "contrast": "2.4083333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/PM25/-1",
      "start_pst": "2025-12-15T23:00:00",
      "end_pst": "2025-12-16T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "9.6034395",
      "contrast": "6.9965605",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/NO2/-1",
      "start_pst": "2025-12-15T23:00:00",
      "end_pst": "2025-12-16T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-16",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "9.6086956521739130434782608695652173913043478260870",
      "contrast": "6.9913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/NO2/-1",
      "start_pst": "2025-12-15T23:00:00",
      "end_pst": "2025-12-16T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "32.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "32.4",
      "town": "17.6188831",
      "contrast": "14.7811169",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/NO2/-1",
      "start_pst": "2025-12-15T23:00:00",
      "end_pst": "2025-12-16T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "32.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "32.4",
      "town": "17.6",
      "contrast": "14.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/NO2/-1",
      "start_pst": "2025-12-15T23:00:00",
      "end_pst": "2025-12-16T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "2.2980250583333333333333333333333333333333333333333",
      "contrast": "2.5019749416666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/PM25/+0",
      "start_pst": "2025-12-16T00:00:00",
      "end_pst": "2025-12-17T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "2.2958333333333333333333333333333333333333333333333",
      "contrast": "2.5041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/PM25/+0",
      "start_pst": "2025-12-16T00:00:00",
      "end_pst": "2025-12-17T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "9.5626988043478260869565217391304347826086956521739",
      "contrast": "7.0373011956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/NO2/+0",
      "start_pst": "2025-12-16T00:00:00",
      "end_pst": "2025-12-17T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-16",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "9.5652173913043478260869565217391304347826086956522",
      "contrast": "7.0347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/NO2/+0",
      "start_pst": "2025-12-16T00:00:00",
      "end_pst": "2025-12-17T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "32.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "32.4",
      "town": "17.6188831",
      "contrast": "14.7811169",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/NO2/+0",
      "start_pst": "2025-12-16T00:00:00",
      "end_pst": "2025-12-17T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "32.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "32.4",
      "town": "17.6",
      "contrast": "14.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/NO2/+0",
      "start_pst": "2025-12-16T00:00:00",
      "end_pst": "2025-12-17T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "2.177982975",
      "contrast": "2.622017025",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/PM25/+1",
      "start_pst": "2025-12-16T01:00:00",
      "end_pst": "2025-12-17T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-16",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "4.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "4.8",
      "town": "2.175",
      "contrast": "2.625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/PM25/+1",
      "start_pst": "2025-12-16T01:00:00",
      "end_pst": "2025-12-17T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "9.5611105434782608695652173913043478260869565217391",
      "contrast": "7.0388894565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/NO2/+1",
      "start_pst": "2025-12-16T01:00:00",
      "end_pst": "2025-12-17T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-16",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.6",
      "town": "9.5608695652173913043478260869565217391304347826087",
      "contrast": "7.0391304347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/NO2/+1",
      "start_pst": "2025-12-16T01:00:00",
      "end_pst": "2025-12-17T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "32.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "32.4",
      "town": "17.6188831",
      "contrast": "14.7811169",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/NO2/+1",
      "start_pst": "2025-12-16T01:00:00",
      "end_pst": "2025-12-17T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-16",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "32.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "32.4",
      "town": "17.6",
      "contrast": "14.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-16/NO2/+1",
      "start_pst": "2025-12-16T01:00:00",
      "end_pst": "2025-12-17T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/16/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 16,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "1.1375552291666666666666666666666666666666666666667",
      "contrast": "5.4624447708333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/PM25/-1",
      "start_pst": "2025-12-16T23:00:00",
      "end_pst": "2025-12-17T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-17",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "1.1291666666666666666666666666666666666666666666667",
      "contrast": "5.4708333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/PM25/-1",
      "start_pst": "2025-12-16T23:00:00",
      "end_pst": "2025-12-17T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.3408657304347826086956521739130434782608695652174",
      "contrast": "7.6591342695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/NO2/-1",
      "start_pst": "2025-12-16T23:00:00",
      "end_pst": "2025-12-17T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-17",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.3347826086956521739130434782608695652173913043478",
      "contrast": "7.6652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/NO2/-1",
      "start_pst": "2025-12-16T23:00:00",
      "end_pst": "2025-12-17T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.9",
      "town": "5.4989161",
      "contrast": "11.4010839",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/NO2/-1",
      "start_pst": "2025-12-16T23:00:00",
      "end_pst": "2025-12-17T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.9",
      "town": "5.5",
      "contrast": "11.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/NO2/-1",
      "start_pst": "2025-12-16T23:00:00",
      "end_pst": "2025-12-17T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "1.179085975",
      "contrast": "5.420914025",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/PM25/+0",
      "start_pst": "2025-12-17T00:00:00",
      "end_pst": "2025-12-18T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "1.1708333333333333333333333333333333333333333333333",
      "contrast": "5.4291666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/PM25/+0",
      "start_pst": "2025-12-17T00:00:00",
      "end_pst": "2025-12-18T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.3132042913043478260869565217391304347826086956522",
      "contrast": "7.6867957086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/NO2/+0",
      "start_pst": "2025-12-17T00:00:00",
      "end_pst": "2025-12-18T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-17",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.3086956521739130434782608695652173913043478260870",
      "contrast": "7.6913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/NO2/+0",
      "start_pst": "2025-12-17T00:00:00",
      "end_pst": "2025-12-18T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.9",
      "town": "5.4989161",
      "contrast": "11.4010839",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/NO2/+0",
      "start_pst": "2025-12-17T00:00:00",
      "end_pst": "2025-12-18T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.9",
      "town": "5.5",
      "contrast": "11.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/NO2/+0",
      "start_pst": "2025-12-17T00:00:00",
      "end_pst": "2025-12-18T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "1.1963602782608695652173913043478260869565217391304",
      "contrast": "5.4036397217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/PM25/+1",
      "start_pst": "2025-12-17T01:00:00",
      "end_pst": "2025-12-18T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-17",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": "1.1869565217391304347826086956521739130434782608696",
      "contrast": "5.4130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/PM25/+1",
      "start_pst": "2025-12-17T01:00:00",
      "end_pst": "2025-12-18T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.2991847304347826086956521739130434782608695652174",
      "contrast": "7.7008152695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/NO2/+1",
      "start_pst": "2025-12-17T01:00:00",
      "end_pst": "2025-12-18T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-17",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.0",
      "town": "3.2956521739130434782608695652173913043478260869565",
      "contrast": "7.7043478260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/NO2/+1",
      "start_pst": "2025-12-17T01:00:00",
      "end_pst": "2025-12-18T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.9",
      "town": "5.4989161",
      "contrast": "11.4010839",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/NO2/+1",
      "start_pst": "2025-12-17T01:00:00",
      "end_pst": "2025-12-18T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-17",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "16.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "16.9",
      "town": "5.5",
      "contrast": "11.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-17/NO2/+1",
      "start_pst": "2025-12-17T01:00:00",
      "end_pst": "2025-12-18T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/17/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 17,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 15,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-18/PM25/-1",
      "start_pst": "2025-12-17T23:00:00",
      "end_pst": "2025-12-18T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-18",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 15,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-18/PM25/-1",
      "start_pst": "2025-12-17T23:00:00",
      "end_pst": "2025-12-18T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "7.7701232913043478260869565217391304347826086956522",
      "contrast": "1.7298767086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-18/NO2/-1",
      "start_pst": "2025-12-17T23:00:00",
      "end_pst": "2025-12-18T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-18",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "7.7739130434782608695652173913043478260869565217391",
      "contrast": "1.7260869565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-18/NO2/-1",
      "start_pst": "2025-12-17T23:00:00",
      "end_pst": "2025-12-18T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "17.8676529",
      "contrast": "3.1323471",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-18/NO2/-1",
      "start_pst": "2025-12-17T23:00:00",
      "end_pst": "2025-12-18T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "17.9",
      "contrast": "3.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-18/NO2/-1",
      "start_pst": "2025-12-17T23:00:00",
      "end_pst": "2025-12-18T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-18/PM25/+0",
      "start_pst": "2025-12-18T00:00:00",
      "end_pst": "2025-12-19T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-18/PM25/+0",
      "start_pst": "2025-12-18T00:00:00",
      "end_pst": "2025-12-19T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "7.6632015956521739130434782608695652173913043478261",
      "contrast": "1.8367984043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-18/NO2/+0",
      "start_pst": "2025-12-18T00:00:00",
      "end_pst": "2025-12-19T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-18",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "7.6652173913043478260869565217391304347826086956522",
      "contrast": "1.8347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-18/NO2/+0",
      "start_pst": "2025-12-18T00:00:00",
      "end_pst": "2025-12-19T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "17.8676529",
      "contrast": "3.1323471",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-18/NO2/+0",
      "start_pst": "2025-12-18T00:00:00",
      "end_pst": "2025-12-19T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "17.9",
      "contrast": "3.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-18/NO2/+0",
      "start_pst": "2025-12-18T00:00:00",
      "end_pst": "2025-12-19T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-18/PM25/+1",
      "start_pst": "2025-12-18T01:00:00",
      "end_pst": "2025-12-19T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-18",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 14,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-18/PM25/+1",
      "start_pst": "2025-12-18T01:00:00",
      "end_pst": "2025-12-19T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "7.6087455043478260869565217391304347826086956521739",
      "contrast": "1.8912544956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-18/NO2/+1",
      "start_pst": "2025-12-18T01:00:00",
      "end_pst": "2025-12-19T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-18",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.5",
      "town": "7.6086956521739130434782608695652173913043478260870",
      "contrast": "1.8913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-18/NO2/+1",
      "start_pst": "2025-12-18T01:00:00",
      "end_pst": "2025-12-19T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "17.8676529",
      "contrast": "3.1323471",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-18/NO2/+1",
      "start_pst": "2025-12-18T01:00:00",
      "end_pst": "2025-12-19T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-18",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "21.0",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "21.0",
      "town": "17.9",
      "contrast": "3.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-18/NO2/+1",
      "start_pst": "2025-12-18T01:00:00",
      "end_pst": "2025-12-19T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/18/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 18,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 15,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-19/PM25/-1",
      "start_pst": "2025-12-18T23:00:00",
      "end_pst": "2025-12-19T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-19",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 15,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-19/PM25/-1",
      "start_pst": "2025-12-18T23:00:00",
      "end_pst": "2025-12-19T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "8.2957797260869565217391304347826086956521739130435",
      "contrast": "-0.3957797260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-19/NO2/-1",
      "start_pst": "2025-12-18T23:00:00",
      "end_pst": "2025-12-19T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-19",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "8.2826086956521739130434782608695652173913043478261",
      "contrast": "-0.3826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-19/NO2/-1",
      "start_pst": "2025-12-18T23:00:00",
      "end_pst": "2025-12-19T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.4",
      "town": "18.6294422",
      "contrast": "-3.2294422",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-19/NO2/-1",
      "start_pst": "2025-12-18T23:00:00",
      "end_pst": "2025-12-19T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.4",
      "town": "18.6",
      "contrast": "-3.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-19/NO2/-1",
      "start_pst": "2025-12-18T23:00:00",
      "end_pst": "2025-12-19T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-19/PM25/+0",
      "start_pst": "2025-12-19T00:00:00",
      "end_pst": "2025-12-20T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-19/PM25/+0",
      "start_pst": "2025-12-19T00:00:00",
      "end_pst": "2025-12-20T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "8.4077944260869565217391304347826086956521739130435",
      "contrast": "-0.5077944260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-19/NO2/+0",
      "start_pst": "2025-12-19T00:00:00",
      "end_pst": "2025-12-20T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-19",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "8.3956521739130434782608695652173913043478260869565",
      "contrast": "-0.4956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-19/NO2/+0",
      "start_pst": "2025-12-19T00:00:00",
      "end_pst": "2025-12-20T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.4",
      "town": "18.6294422",
      "contrast": "-3.2294422",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-19/NO2/+0",
      "start_pst": "2025-12-19T00:00:00",
      "end_pst": "2025-12-20T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.4",
      "town": "18.6",
      "contrast": "-3.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-19/NO2/+0",
      "start_pst": "2025-12-19T00:00:00",
      "end_pst": "2025-12-20T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 17,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-19/PM25/+1",
      "start_pst": "2025-12-19T01:00:00",
      "end_pst": "2025-12-20T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-19",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 17,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-19/PM25/+1",
      "start_pst": "2025-12-19T01:00:00",
      "end_pst": "2025-12-20T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "8.4581727304347826086956521739130434782608695652174",
      "contrast": "-0.5581727304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-19/NO2/+1",
      "start_pst": "2025-12-19T01:00:00",
      "end_pst": "2025-12-20T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-19",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "7.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.9",
      "town": "8.4478260869565217391304347826086956521739130434783",
      "contrast": "-0.5478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-19/NO2/+1",
      "start_pst": "2025-12-19T01:00:00",
      "end_pst": "2025-12-20T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.4",
      "town": "18.6294422",
      "contrast": "-3.2294422",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-19/NO2/+1",
      "start_pst": "2025-12-19T01:00:00",
      "end_pst": "2025-12-20T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-19",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.4",
      "town": "18.6",
      "contrast": "-3.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-19/NO2/+1",
      "start_pst": "2025-12-19T01:00:00",
      "end_pst": "2025-12-20T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/19/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 19,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "1.6939428416666666666666666666666666666666666666667",
      "contrast": "2.2060571583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/PM25/-1",
      "start_pst": "2025-12-19T23:00:00",
      "end_pst": "2025-12-20T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-20",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "1.6958333333333333333333333333333333333333333333333",
      "contrast": "2.2041666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/PM25/-1",
      "start_pst": "2025-12-19T23:00:00",
      "end_pst": "2025-12-20T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "5.3891710826086956521739130434782608695652173913043",
      "contrast": "3.4108289173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/NO2/-1",
      "start_pst": "2025-12-19T23:00:00",
      "end_pst": "2025-12-20T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-20",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "5.3869565217391304347826086956521739130434782608696",
      "contrast": "3.4130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/NO2/-1",
      "start_pst": "2025-12-19T23:00:00",
      "end_pst": "2025-12-20T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "9.7282591",
      "contrast": "4.4717409",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/NO2/-1",
      "start_pst": "2025-12-19T23:00:00",
      "end_pst": "2025-12-20T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "9.7",
      "contrast": "4.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/NO2/-1",
      "start_pst": "2025-12-19T23:00:00",
      "end_pst": "2025-12-20T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "1.6995838347826086956521739130434782608695652173913",
      "contrast": "2.2004161652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/PM25/+0",
      "start_pst": "2025-12-20T00:00:00",
      "end_pst": "2025-12-21T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "1.7",
      "contrast": "2.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/PM25/+0",
      "start_pst": "2025-12-20T00:00:00",
      "end_pst": "2025-12-21T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "5.5678998695652173913043478260869565217391304347826",
      "contrast": "3.2321001304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/NO2/+0",
      "start_pst": "2025-12-20T00:00:00",
      "end_pst": "2025-12-21T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-20",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "5.5652173913043478260869565217391304347826086956522",
      "contrast": "3.2347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/NO2/+0",
      "start_pst": "2025-12-20T00:00:00",
      "end_pst": "2025-12-21T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "9.7282591",
      "contrast": "4.4717409",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/NO2/+0",
      "start_pst": "2025-12-20T00:00:00",
      "end_pst": "2025-12-21T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "9.7",
      "contrast": "4.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/NO2/+0",
      "start_pst": "2025-12-20T00:00:00",
      "end_pst": "2025-12-21T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "1.7206307363636363636363636363636363636363636363636",
      "contrast": "2.1793692636363636363636363636363636363636363636364",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/PM25/+1",
      "start_pst": "2025-12-20T01:00:00",
      "end_pst": "2025-12-21T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-20",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "3.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "3.9",
      "town": "1.7227272727272727272727272727272727272727272727273",
      "contrast": "2.1772727272727272727272727272727272727272727272727",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/PM25/+1",
      "start_pst": "2025-12-20T01:00:00",
      "end_pst": "2025-12-21T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "5.6288558695652173913043478260869565217391304347826",
      "contrast": "3.1711441304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/NO2/+1",
      "start_pst": "2025-12-20T01:00:00",
      "end_pst": "2025-12-21T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-20",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "5.6260869565217391304347826086956521739130434782609",
      "contrast": "3.1739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/NO2/+1",
      "start_pst": "2025-12-20T01:00:00",
      "end_pst": "2025-12-21T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "9.7282591",
      "contrast": "4.4717409",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/NO2/+1",
      "start_pst": "2025-12-20T01:00:00",
      "end_pst": "2025-12-21T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-20",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "9.7",
      "contrast": "4.5",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-20/NO2/+1",
      "start_pst": "2025-12-20T01:00:00",
      "end_pst": "2025-12-21T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/20/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 20,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-21/PM25/-1",
      "start_pst": "2025-12-20T23:00:00",
      "end_pst": "2025-12-21T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-21",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-21/PM25/-1",
      "start_pst": "2025-12-20T23:00:00",
      "end_pst": "2025-12-21T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "4.5156576826086956521739130434782608695652173913043",
      "contrast": "7.5843423173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-21/NO2/-1",
      "start_pst": "2025-12-20T23:00:00",
      "end_pst": "2025-12-21T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-21",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "4.5260869565217391304347826086956521739130434782609",
      "contrast": "7.5739130434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-21/NO2/-1",
      "start_pst": "2025-12-20T23:00:00",
      "end_pst": "2025-12-21T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.2",
      "town": "8.8242493",
      "contrast": "15.3757507",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-21/NO2/-1",
      "start_pst": "2025-12-20T23:00:00",
      "end_pst": "2025-12-21T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.2",
      "town": "8.8",
      "contrast": "15.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-21/NO2/-1",
      "start_pst": "2025-12-20T23:00:00",
      "end_pst": "2025-12-21T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-21/PM25/+0",
      "start_pst": "2025-12-21T00:00:00",
      "end_pst": "2025-12-22T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-21/PM25/+0",
      "start_pst": "2025-12-21T00:00:00",
      "end_pst": "2025-12-22T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "4.2910143695652173913043478260869565217391304347826",
      "contrast": "7.8089856304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-21/NO2/+0",
      "start_pst": "2025-12-21T00:00:00",
      "end_pst": "2025-12-22T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-21",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "4.3043478260869565217391304347826086956521739130435",
      "contrast": "7.7956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-21/NO2/+0",
      "start_pst": "2025-12-21T00:00:00",
      "end_pst": "2025-12-22T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.2",
      "town": "8.8242493",
      "contrast": "15.3757507",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-21/NO2/+0",
      "start_pst": "2025-12-21T00:00:00",
      "end_pst": "2025-12-22T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.2",
      "town": "8.8",
      "contrast": "15.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-21/NO2/+0",
      "start_pst": "2025-12-21T00:00:00",
      "end_pst": "2025-12-22T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-21/PM25/+1",
      "start_pst": "2025-12-21T01:00:00",
      "end_pst": "2025-12-22T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-21",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 16,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-21/PM25/+1",
      "start_pst": "2025-12-21T01:00:00",
      "end_pst": "2025-12-22T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "4.2032231956521739130434782608695652173913043478261",
      "contrast": "7.8967768043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-21/NO2/+1",
      "start_pst": "2025-12-21T01:00:00",
      "end_pst": "2025-12-22T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-21",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "12.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "12.1",
      "town": "4.2173913043478260869565217391304347826086956521739",
      "contrast": "7.8826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-21/NO2/+1",
      "start_pst": "2025-12-21T01:00:00",
      "end_pst": "2025-12-22T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.2",
      "town": "8.8242493",
      "contrast": "15.3757507",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-21/NO2/+1",
      "start_pst": "2025-12-21T01:00:00",
      "end_pst": "2025-12-22T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-21",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "24.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "24.2",
      "town": "8.8",
      "contrast": "15.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-21/NO2/+1",
      "start_pst": "2025-12-21T01:00:00",
      "end_pst": "2025-12-22T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/21/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 21,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 1,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-22/PM25/-1",
      "start_pst": "2025-12-21T23:00:00",
      "end_pst": "2025-12-22T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-22",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 1,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-22/PM25/-1",
      "start_pst": "2025-12-21T23:00:00",
      "end_pst": "2025-12-22T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "6.4541692739130434782608695652173913043478260869565",
      "contrast": "8.1458307260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-22/NO2/-1",
      "start_pst": "2025-12-21T23:00:00",
      "end_pst": "2025-12-22T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-22",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "6.4565217391304347826086956521739130434782608695652",
      "contrast": "8.1434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-22/NO2/-1",
      "start_pst": "2025-12-21T23:00:00",
      "end_pst": "2025-12-22T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.3",
      "town": "14.7077808",
      "contrast": "13.5922192",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-22/NO2/-1",
      "start_pst": "2025-12-21T23:00:00",
      "end_pst": "2025-12-22T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.3",
      "town": "14.7",
      "contrast": "13.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-22/NO2/-1",
      "start_pst": "2025-12-21T23:00:00",
      "end_pst": "2025-12-22T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 1,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-22/PM25/+0",
      "start_pst": "2025-12-22T00:00:00",
      "end_pst": "2025-12-23T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 1,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-22/PM25/+0",
      "start_pst": "2025-12-22T00:00:00",
      "end_pst": "2025-12-23T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "6.4142455782608695652173913043478260869565217391304",
      "contrast": "8.1857544217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-22/NO2/+0",
      "start_pst": "2025-12-22T00:00:00",
      "end_pst": "2025-12-23T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-22",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "6.4130434782608695652173913043478260869565217391304",
      "contrast": "8.1869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-22/NO2/+0",
      "start_pst": "2025-12-22T00:00:00",
      "end_pst": "2025-12-23T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.3",
      "town": "14.7077808",
      "contrast": "13.5922192",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-22/NO2/+0",
      "start_pst": "2025-12-22T00:00:00",
      "end_pst": "2025-12-23T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.3",
      "town": "14.7",
      "contrast": "13.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-22/NO2/+0",
      "start_pst": "2025-12-22T00:00:00",
      "end_pst": "2025-12-23T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 1,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-22/PM25/+1",
      "start_pst": "2025-12-22T01:00:00",
      "end_pst": "2025-12-23T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-22",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.4",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 1,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-22/PM25/+1",
      "start_pst": "2025-12-22T01:00:00",
      "end_pst": "2025-12-23T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "6.4126060565217391304347826086956521739130434782609",
      "contrast": "8.1873939434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-22/NO2/+1",
      "start_pst": "2025-12-22T01:00:00",
      "end_pst": "2025-12-23T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-22",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.6",
      "town": "6.4086956521739130434782608695652173913043478260870",
      "contrast": "8.1913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-22/NO2/+1",
      "start_pst": "2025-12-22T01:00:00",
      "end_pst": "2025-12-23T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.3",
      "town": "14.7077808",
      "contrast": "13.5922192",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-22/NO2/+1",
      "start_pst": "2025-12-22T01:00:00",
      "end_pst": "2025-12-23T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-22",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "28.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "28.3",
      "town": "14.7",
      "contrast": "13.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-22/NO2/+1",
      "start_pst": "2025-12-22T01:00:00",
      "end_pst": "2025-12-23T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/22/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 22,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-23/PM25/-1",
      "start_pst": "2025-12-22T23:00:00",
      "end_pst": "2025-12-23T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-23",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-23/PM25/-1",
      "start_pst": "2025-12-22T23:00:00",
      "end_pst": "2025-12-23T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.6",
      "town": "6.0967814913043478260869565217391304347826086956522",
      "contrast": "4.5032185086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-23/NO2/-1",
      "start_pst": "2025-12-22T23:00:00",
      "end_pst": "2025-12-23T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-23",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.6",
      "town": "6.0782608695652173913043478260869565217391304347826",
      "contrast": "4.5217391304347826086956521739130434782608695652174",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-23/NO2/-1",
      "start_pst": "2025-12-22T23:00:00",
      "end_pst": "2025-12-23T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.2",
      "town": "15.8470831",
      "contrast": "3.3529169",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-23/NO2/-1",
      "start_pst": "2025-12-22T23:00:00",
      "end_pst": "2025-12-23T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.2",
      "town": "15.8",
      "contrast": "3.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-23/NO2/-1",
      "start_pst": "2025-12-22T23:00:00",
      "end_pst": "2025-12-23T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-23/PM25/+0",
      "start_pst": "2025-12-23T00:00:00",
      "end_pst": "2025-12-24T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-23/PM25/+0",
      "start_pst": "2025-12-23T00:00:00",
      "end_pst": "2025-12-24T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.6",
      "town": "6.0830272739130434782608695652173913043478260869565",
      "contrast": "4.5169727260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-23/NO2/+0",
      "start_pst": "2025-12-23T00:00:00",
      "end_pst": "2025-12-24T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-23",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.6",
      "town": "6.0652173913043478260869565217391304347826086956522",
      "contrast": "4.5347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-23/NO2/+0",
      "start_pst": "2025-12-23T00:00:00",
      "end_pst": "2025-12-24T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.2",
      "town": "15.8470831",
      "contrast": "3.3529169",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-23/NO2/+0",
      "start_pst": "2025-12-23T00:00:00",
      "end_pst": "2025-12-24T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.2",
      "town": "15.8",
      "contrast": "3.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-23/NO2/+0",
      "start_pst": "2025-12-23T00:00:00",
      "end_pst": "2025-12-24T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-23/PM25/+1",
      "start_pst": "2025-12-23T01:00:00",
      "end_pst": "2025-12-24T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-23",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.8",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-23/PM25/+1",
      "start_pst": "2025-12-23T01:00:00",
      "end_pst": "2025-12-24T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.6",
      "town": "6.0307844043478260869565217391304347826086956521739",
      "contrast": "4.5692155956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-23/NO2/+1",
      "start_pst": "2025-12-23T01:00:00",
      "end_pst": "2025-12-24T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-23",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.6",
      "town": "6.0130434782608695652173913043478260869565217391304",
      "contrast": "4.5869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-23/NO2/+1",
      "start_pst": "2025-12-23T01:00:00",
      "end_pst": "2025-12-24T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.2",
      "town": "15.8470831",
      "contrast": "3.3529169",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-23/NO2/+1",
      "start_pst": "2025-12-23T01:00:00",
      "end_pst": "2025-12-24T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-23",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.2",
      "town": "15.8",
      "contrast": "3.4",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-23/NO2/+1",
      "start_pst": "2025-12-23T01:00:00",
      "end_pst": "2025-12-24T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/23/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 23,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-24/PM25/-1",
      "start_pst": "2025-12-23T23:00:00",
      "end_pst": "2025-12-24T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-24",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-24/PM25/-1",
      "start_pst": "2025-12-23T23:00:00",
      "end_pst": "2025-12-24T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.6592246565217391304347826086956521739130434782609",
      "contrast": "6.2407753434782608695652173913043478260869565217391",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-24/NO2/-1",
      "start_pst": "2025-12-23T23:00:00",
      "end_pst": "2025-12-24T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-24",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.6652173913043478260869565217391304347826086956522",
      "contrast": "6.2347826086956521739130434782608695652173913043478",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-24/NO2/-1",
      "start_pst": "2025-12-23T23:00:00",
      "end_pst": "2025-12-24T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "8.124464",
      "contrast": "10.975536",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-24/NO2/-1",
      "start_pst": "2025-12-23T23:00:00",
      "end_pst": "2025-12-24T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "8.1",
      "contrast": "11.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-24/NO2/-1",
      "start_pst": "2025-12-23T23:00:00",
      "end_pst": "2025-12-24T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-24/PM25/+0",
      "start_pst": "2025-12-24T00:00:00",
      "end_pst": "2025-12-25T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-24/PM25/+0",
      "start_pst": "2025-12-24T00:00:00",
      "end_pst": "2025-12-25T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.7129874347826086956521739130434782608695652173913",
      "contrast": "6.1870125652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-24/NO2/+0",
      "start_pst": "2025-12-24T00:00:00",
      "end_pst": "2025-12-25T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-24",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.7217391304347826086956521739130434782608695652174",
      "contrast": "6.1782608695652173913043478260869565217391304347826",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-24/NO2/+0",
      "start_pst": "2025-12-24T00:00:00",
      "end_pst": "2025-12-25T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "8.124464",
      "contrast": "10.975536",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-24/NO2/+0",
      "start_pst": "2025-12-24T00:00:00",
      "end_pst": "2025-12-25T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "8.1",
      "contrast": "11.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-24/NO2/+0",
      "start_pst": "2025-12-24T00:00:00",
      "end_pst": "2025-12-25T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-24/PM25/+1",
      "start_pst": "2025-12-24T01:00:00",
      "end_pst": "2025-12-25T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-24",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.6",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-24/PM25/+1",
      "start_pst": "2025-12-24T01:00:00",
      "end_pst": "2025-12-25T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.7261122173913043478260869565217391304347826086957",
      "contrast": "6.1738877826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-24/NO2/+1",
      "start_pst": "2025-12-24T01:00:00",
      "end_pst": "2025-12-25T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-24",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.9",
      "town": "2.7347826086956521739130434782608695652173913043478",
      "contrast": "6.1652173913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-24/NO2/+1",
      "start_pst": "2025-12-24T01:00:00",
      "end_pst": "2025-12-25T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "8.124464",
      "contrast": "10.975536",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-24/NO2/+1",
      "start_pst": "2025-12-24T01:00:00",
      "end_pst": "2025-12-25T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-24",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "19.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "19.1",
      "town": "8.1",
      "contrast": "11.0",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-24/NO2/+1",
      "start_pst": "2025-12-24T01:00:00",
      "end_pst": "2025-12-25T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/24/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 24,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-25/PM25/-1",
      "start_pst": "2025-12-24T23:00:00",
      "end_pst": "2025-12-25T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-25",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-25/PM25/-1",
      "start_pst": "2025-12-24T23:00:00",
      "end_pst": "2025-12-25T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "1.7546769608695652173913043478260869565217391304348",
      "contrast": "5.1453230391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-25/NO2/-1",
      "start_pst": "2025-12-24T23:00:00",
      "end_pst": "2025-12-25T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-25",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "1.7521739130434782608695652173913043478260869565217",
      "contrast": "5.1478260869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-25/NO2/-1",
      "start_pst": "2025-12-24T23:00:00",
      "end_pst": "2025-12-25T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.9",
      "town": "6.2408762",
      "contrast": "16.6591238",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-25/NO2/-1",
      "start_pst": "2025-12-24T23:00:00",
      "end_pst": "2025-12-25T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.9",
      "town": "6.2",
      "contrast": "16.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-25/NO2/-1",
      "start_pst": "2025-12-24T23:00:00",
      "end_pst": "2025-12-25T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-25/PM25/+0",
      "start_pst": "2025-12-25T00:00:00",
      "end_pst": "2025-12-26T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-25/PM25/+0",
      "start_pst": "2025-12-25T00:00:00",
      "end_pst": "2025-12-26T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "1.7228840956521739130434782608695652173913043478261",
      "contrast": "5.1771159043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-25/NO2/+0",
      "start_pst": "2025-12-25T00:00:00",
      "end_pst": "2025-12-26T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-25",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "1.7173913043478260869565217391304347826086956521739",
      "contrast": "5.1826086956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-25/NO2/+0",
      "start_pst": "2025-12-25T00:00:00",
      "end_pst": "2025-12-26T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.9",
      "town": "6.2408762",
      "contrast": "16.6591238",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-25/NO2/+0",
      "start_pst": "2025-12-25T00:00:00",
      "end_pst": "2025-12-26T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.9",
      "town": "6.2",
      "contrast": "16.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-25/NO2/+0",
      "start_pst": "2025-12-25T00:00:00",
      "end_pst": "2025-12-26T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-25/PM25/+1",
      "start_pst": "2025-12-25T01:00:00",
      "end_pst": "2025-12-26T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-25",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-25/PM25/+1",
      "start_pst": "2025-12-25T01:00:00",
      "end_pst": "2025-12-26T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "1.8136753173913043478260869565217391304347826086957",
      "contrast": "5.0863246826086956521739130434782608695652173913043",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-25/NO2/+1",
      "start_pst": "2025-12-25T01:00:00",
      "end_pst": "2025-12-26T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-25",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "6.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.9",
      "town": "1.8086956521739130434782608695652173913043478260870",
      "contrast": "5.0913043478260869565217391304347826086956521739130",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-25/NO2/+1",
      "start_pst": "2025-12-25T01:00:00",
      "end_pst": "2025-12-26T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.9",
      "town": "6.2408762",
      "contrast": "16.6591238",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-25/NO2/+1",
      "start_pst": "2025-12-25T01:00:00",
      "end_pst": "2025-12-26T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-25",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "22.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "22.9",
      "town": "6.2",
      "contrast": "16.7",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-25/NO2/+1",
      "start_pst": "2025-12-25T01:00:00",
      "end_pst": "2025-12-26T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/25/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 25,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-26/PM25/-1",
      "start_pst": "2025-12-25T23:00:00",
      "end_pst": "2025-12-26T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-26",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-26/PM25/-1",
      "start_pst": "2025-12-25T23:00:00",
      "end_pst": "2025-12-26T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "5.5884868043478260869565217391304347826086956521739",
      "contrast": "9.9115131956521739130434782608695652173913043478261",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-26/NO2/-1",
      "start_pst": "2025-12-25T23:00:00",
      "end_pst": "2025-12-26T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-26",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "5.5826086956521739130434782608695652173913043478261",
      "contrast": "9.9173913043478260869565217391304347826086956521739",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-26/NO2/-1",
      "start_pst": "2025-12-25T23:00:00",
      "end_pst": "2025-12-26T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.5",
      "town": "10.4169273",
      "contrast": "15.0830727",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-26/NO2/-1",
      "start_pst": "2025-12-25T23:00:00",
      "end_pst": "2025-12-26T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.5",
      "town": "10.4",
      "contrast": "15.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-26/NO2/-1",
      "start_pst": "2025-12-25T23:00:00",
      "end_pst": "2025-12-26T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-26/PM25/+0",
      "start_pst": "2025-12-26T00:00:00",
      "end_pst": "2025-12-27T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-26/PM25/+0",
      "start_pst": "2025-12-26T00:00:00",
      "end_pst": "2025-12-27T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "5.7623315434782608695652173913043478260869565217391",
      "contrast": "9.7376684565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-26/NO2/+0",
      "start_pst": "2025-12-26T00:00:00",
      "end_pst": "2025-12-27T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-26",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "5.7565217391304347826086956521739130434782608695652",
      "contrast": "9.7434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-26/NO2/+0",
      "start_pst": "2025-12-26T00:00:00",
      "end_pst": "2025-12-27T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.5",
      "town": "10.4169273",
      "contrast": "15.0830727",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-26/NO2/+0",
      "start_pst": "2025-12-26T00:00:00",
      "end_pst": "2025-12-27T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.5",
      "town": "10.4",
      "contrast": "15.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-26/NO2/+0",
      "start_pst": "2025-12-26T00:00:00",
      "end_pst": "2025-12-27T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-26/PM25/+1",
      "start_pst": "2025-12-26T01:00:00",
      "end_pst": "2025-12-27T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-26",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-26/PM25/+1",
      "start_pst": "2025-12-26T01:00:00",
      "end_pst": "2025-12-27T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "5.6593299739130434782608695652173913043478260869565",
      "contrast": "9.8406700260869565217391304347826086956521739130435",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-26/NO2/+1",
      "start_pst": "2025-12-26T01:00:00",
      "end_pst": "2025-12-27T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-26",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.5",
      "town": "5.6565217391304347826086956521739130434782608695652",
      "contrast": "9.8434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-26/NO2/+1",
      "start_pst": "2025-12-26T01:00:00",
      "end_pst": "2025-12-27T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.5",
      "town": "10.4169273",
      "contrast": "15.0830727",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-26/NO2/+1",
      "start_pst": "2025-12-26T01:00:00",
      "end_pst": "2025-12-27T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-26",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "25.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "25.5",
      "town": "10.4",
      "contrast": "15.1",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-26/NO2/+1",
      "start_pst": "2025-12-26T01:00:00",
      "end_pst": "2025-12-27T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/26/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 26,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-27/PM25/-1",
      "start_pst": "2025-12-26T23:00:00",
      "end_pst": "2025-12-27T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-27",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-27/PM25/-1",
      "start_pst": "2025-12-26T23:00:00",
      "end_pst": "2025-12-27T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "1.9498416608695652173913043478260869565217391304348",
      "contrast": "8.7501583391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-27/NO2/-1",
      "start_pst": "2025-12-26T23:00:00",
      "end_pst": "2025-12-27T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-27",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "1.9391304347826086956521739130434782608695652173913",
      "contrast": "8.7608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-27/NO2/-1",
      "start_pst": "2025-12-26T23:00:00",
      "end_pst": "2025-12-27T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "6.029716",
      "contrast": "9.570284",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-27/NO2/-1",
      "start_pst": "2025-12-26T23:00:00",
      "end_pst": "2025-12-27T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "6",
      "contrast": "9.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-27/NO2/-1",
      "start_pst": "2025-12-26T23:00:00",
      "end_pst": "2025-12-27T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-27/PM25/+0",
      "start_pst": "2025-12-27T00:00:00",
      "end_pst": "2025-12-28T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-27/PM25/+0",
      "start_pst": "2025-12-27T00:00:00",
      "end_pst": "2025-12-28T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "1.8005053130434782608695652173913043478260869565217",
      "contrast": "8.8994946869565217391304347826086956521739130434783",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-27/NO2/+0",
      "start_pst": "2025-12-27T00:00:00",
      "end_pst": "2025-12-28T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-27",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "1.7913043478260869565217391304347826086956521739130",
      "contrast": "8.9086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-27/NO2/+0",
      "start_pst": "2025-12-27T00:00:00",
      "end_pst": "2025-12-28T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "3.785712",
      "contrast": "11.814288",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-27/NO2/+0",
      "start_pst": "2025-12-27T00:00:00",
      "end_pst": "2025-12-28T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "3.8",
      "contrast": "11.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-27/NO2/+0",
      "start_pst": "2025-12-27T00:00:00",
      "end_pst": "2025-12-28T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-27/PM25/+1",
      "start_pst": "2025-12-27T01:00:00",
      "end_pst": "2025-12-28T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-27",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.1",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-27/PM25/+1",
      "start_pst": "2025-12-27T01:00:00",
      "end_pst": "2025-12-28T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "1.8393053608695652173913043478260869565217391304348",
      "contrast": "8.8606946391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-27/NO2/+1",
      "start_pst": "2025-12-27T01:00:00",
      "end_pst": "2025-12-28T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-27",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "10.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "10.7",
      "town": "1.8304347826086956521739130434782608695652173913043",
      "contrast": "8.8695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-27/NO2/+1",
      "start_pst": "2025-12-27T01:00:00",
      "end_pst": "2025-12-28T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "3.785712",
      "contrast": "11.814288",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-27/NO2/+1",
      "start_pst": "2025-12-27T01:00:00",
      "end_pst": "2025-12-28T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-27",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "15.6",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "15.6",
      "town": "3.8",
      "contrast": "11.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-27/NO2/+1",
      "start_pst": "2025-12-27T01:00:00",
      "end_pst": "2025-12-28T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/27/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 27,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-28/PM25/-1",
      "start_pst": "2025-12-27T23:00:00",
      "end_pst": "2025-12-28T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-28",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-28/PM25/-1",
      "start_pst": "2025-12-27T23:00:00",
      "end_pst": "2025-12-28T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "2.0884882",
      "contrast": "6.6115118",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-28/NO2/-1",
      "start_pst": "2025-12-27T23:00:00",
      "end_pst": "2025-12-28T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-28",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "2.0913043478260869565217391304347826086956521739130",
      "contrast": "6.6086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-28/NO2/-1",
      "start_pst": "2025-12-27T23:00:00",
      "end_pst": "2025-12-28T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "3.515676",
      "contrast": "9.884324",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-28/NO2/-1",
      "start_pst": "2025-12-27T23:00:00",
      "end_pst": "2025-12-28T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "3.5",
      "contrast": "9.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-28/NO2/-1",
      "start_pst": "2025-12-27T23:00:00",
      "end_pst": "2025-12-28T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-28/PM25/+0",
      "start_pst": "2025-12-28T00:00:00",
      "end_pst": "2025-12-29T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-28/PM25/+0",
      "start_pst": "2025-12-28T00:00:00",
      "end_pst": "2025-12-29T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "2.0343642434782608695652173913043478260869565217391",
      "contrast": "6.6656357565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-28/NO2/+0",
      "start_pst": "2025-12-28T00:00:00",
      "end_pst": "2025-12-29T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-28",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "2.0391304347826086956521739130434782608695652173913",
      "contrast": "6.6608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-28/NO2/+0",
      "start_pst": "2025-12-28T00:00:00",
      "end_pst": "2025-12-29T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "3.515676",
      "contrast": "9.884324",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-28/NO2/+0",
      "start_pst": "2025-12-28T00:00:00",
      "end_pst": "2025-12-29T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "3.5",
      "contrast": "9.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-28/NO2/+0",
      "start_pst": "2025-12-28T00:00:00",
      "end_pst": "2025-12-29T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-28/PM25/+1",
      "start_pst": "2025-12-28T01:00:00",
      "end_pst": "2025-12-29T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-28",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "7.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "7.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 0,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-28/PM25/+1",
      "start_pst": "2025-12-28T01:00:00",
      "end_pst": "2025-12-29T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "1.9861735434782608695652173913043478260869565217391",
      "contrast": "6.7138264565217391304347826086956521739130434782609",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-28/NO2/+1",
      "start_pst": "2025-12-28T01:00:00",
      "end_pst": "2025-12-29T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-28",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.7",
      "town": "1.9913043478260869565217391304347826086956521739130",
      "contrast": "6.7086956521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-28/NO2/+1",
      "start_pst": "2025-12-28T01:00:00",
      "end_pst": "2025-12-29T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "3.515676",
      "contrast": "9.884324",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-28/NO2/+1",
      "start_pst": "2025-12-28T01:00:00",
      "end_pst": "2025-12-29T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-28",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "13.4",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "13.4",
      "town": "3.5",
      "contrast": "9.9",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-28/NO2/+1",
      "start_pst": "2025-12-28T01:00:00",
      "end_pst": "2025-12-29T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/28/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 28,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 8,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-29/PM25/-1",
      "start_pst": "2025-12-28T23:00:00",
      "end_pst": "2025-12-29T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-29",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 8,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-29/PM25/-1",
      "start_pst": "2025-12-28T23:00:00",
      "end_pst": "2025-12-29T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "2.3142824217391304347826086956521739130434782608696",
      "contrast": "6.4857175782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-29/NO2/-1",
      "start_pst": "2025-12-28T23:00:00",
      "end_pst": "2025-12-29T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-29",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "2.3130434782608695652173913043478260869565217391304",
      "contrast": "6.4869565217391304347826086956521739130434782608696",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-29/NO2/-1",
      "start_pst": "2025-12-28T23:00:00",
      "end_pst": "2025-12-29T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "6.341289",
      "contrast": "5.158711",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-29/NO2/-1",
      "start_pst": "2025-12-28T23:00:00",
      "end_pst": "2025-12-29T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "6.3",
      "contrast": "5.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-29/NO2/-1",
      "start_pst": "2025-12-28T23:00:00",
      "end_pst": "2025-12-29T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 9,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-29/PM25/+0",
      "start_pst": "2025-12-29T00:00:00",
      "end_pst": "2025-12-30T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 9,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-29/PM25/+0",
      "start_pst": "2025-12-29T00:00:00",
      "end_pst": "2025-12-30T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "2.3900268608695652173913043478260869565217391304348",
      "contrast": "6.4099731391304347826086956521739130434782608695652",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-29/NO2/+0",
      "start_pst": "2025-12-29T00:00:00",
      "end_pst": "2025-12-30T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-29",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "2.3869565217391304347826086956521739130434782608696",
      "contrast": "6.4130434782608695652173913043478260869565217391304",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-29/NO2/+0",
      "start_pst": "2025-12-29T00:00:00",
      "end_pst": "2025-12-30T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "6.341289",
      "contrast": "5.158711",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-29/NO2/+0",
      "start_pst": "2025-12-29T00:00:00",
      "end_pst": "2025-12-30T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "6.3",
      "contrast": "5.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-29/NO2/+0",
      "start_pst": "2025-12-29T00:00:00",
      "end_pst": "2025-12-30T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 10,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-29/PM25/+1",
      "start_pst": "2025-12-29T01:00:00",
      "end_pst": "2025-12-30T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-29",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.9",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.9",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 10,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "town_fewer_than_18_numeric_hours"
      ],
      "window_id": "2025-12-29/PM25/+1",
      "start_pst": "2025-12-29T01:00:00",
      "end_pst": "2025-12-30T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "2.4092923391304347826086956521739130434782608695652",
      "contrast": "6.3907076608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-29/NO2/+1",
      "start_pst": "2025-12-29T01:00:00",
      "end_pst": "2025-12-30T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-29",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.8",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.8",
      "town": "2.4043478260869565217391304347826086956521739130435",
      "contrast": "6.3956521739130434782608695652173913043478260869565",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-29/NO2/+1",
      "start_pst": "2025-12-29T01:00:00",
      "end_pst": "2025-12-30T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "6.341289",
      "contrast": "5.158711",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-29/NO2/+1",
      "start_pst": "2025-12-29T01:00:00",
      "end_pst": "2025-12-30T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-29",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.5",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.5",
      "town": "6.3",
      "contrast": "5.2",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-29/NO2/+1",
      "start_pst": "2025-12-29T01:00:00",
      "end_pst": "2025-12-30T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/29/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 29,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "3.8362870333333333333333333333333333333333333333333",
      "contrast": "1.8637129666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/PM25/-1",
      "start_pst": "2025-12-29T23:00:00",
      "end_pst": "2025-12-30T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-30",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "3.8375",
      "contrast": "1.8625",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/PM25/-1",
      "start_pst": "2025-12-29T23:00:00",
      "end_pst": "2025-12-30T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "3.1470553086956521739130434782608695652173913043478",
      "contrast": "5.9529446913043478260869565217391304347826086956522",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/NO2/-1",
      "start_pst": "2025-12-29T23:00:00",
      "end_pst": "2025-12-30T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-30",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "3.1391304347826086956521739130434782608695652173913",
      "contrast": "5.9608695652173913043478260869565217391304347826087",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/NO2/-1",
      "start_pst": "2025-12-29T23:00:00",
      "end_pst": "2025-12-30T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.3525162",
      "contrast": "7.8474838",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/NO2/-1",
      "start_pst": "2025-12-29T23:00:00",
      "end_pst": "2025-12-30T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.4",
      "contrast": "7.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/NO2/-1",
      "start_pst": "2025-12-29T23:00:00",
      "end_pst": "2025-12-30T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "3.8510301041666666666666666666666666666666666666667",
      "contrast": "1.8489698958333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/PM25/+0",
      "start_pst": "2025-12-30T00:00:00",
      "end_pst": "2025-12-31T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "3.85",
      "contrast": "1.85",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/PM25/+0",
      "start_pst": "2025-12-30T00:00:00",
      "end_pst": "2025-12-31T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "3.1639042652173913043478260869565217391304347826087",
      "contrast": "5.9360957347826086956521739130434782608695652173913",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/NO2/+0",
      "start_pst": "2025-12-30T00:00:00",
      "end_pst": "2025-12-31T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-30",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "3.1565217391304347826086956521739130434782608695652",
      "contrast": "5.9434782608695652173913043478260869565217391304348",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/NO2/+0",
      "start_pst": "2025-12-30T00:00:00",
      "end_pst": "2025-12-31T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.3525162",
      "contrast": "7.8474838",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/NO2/+0",
      "start_pst": "2025-12-30T00:00:00",
      "end_pst": "2025-12-31T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.4",
      "contrast": "7.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/NO2/+0",
      "start_pst": "2025-12-30T00:00:00",
      "end_pst": "2025-12-31T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "3.8990309416666666666666666666666666666666666666667",
      "contrast": "1.8009690583333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/PM25/+1",
      "start_pst": "2025-12-30T01:00:00",
      "end_pst": "2025-12-31T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-30",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "5.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "5.7",
      "town": "3.9",
      "contrast": "1.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/PM25/+1",
      "start_pst": "2025-12-30T01:00:00",
      "end_pst": "2025-12-31T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "3.2443499590909090909090909090909090909090909090909",
      "contrast": "5.8556500409090909090909090909090909090909090909091",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/NO2/+1",
      "start_pst": "2025-12-30T01:00:00",
      "end_pst": "2025-12-31T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-30",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "9.1",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "9.1",
      "town": "3.2363636363636363636363636363636363636363636363636",
      "contrast": "5.8636363636363636363636363636363636363636363636364",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/NO2/+1",
      "start_pst": "2025-12-30T01:00:00",
      "end_pst": "2025-12-31T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.3525162",
      "contrast": "7.8474838",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/NO2/+1",
      "start_pst": "2025-12-30T01:00:00",
      "end_pst": "2025-12-31T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-30",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "14.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "14.2",
      "town": "6.4",
      "contrast": "7.8",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-30/NO2/+1",
      "start_pst": "2025-12-30T01:00:00",
      "end_pst": "2025-12-31T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/30/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 30,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-31",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.8174167125",
      "contrast": "2.4825832875",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-31/PM25/-1",
      "start_pst": "2025-12-30T23:00:00",
      "end_pst": "2025-12-31T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-31",
      "metric": "pm25_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.8166666666666666666666666666666666666666666666667",
      "contrast": "2.4833333333333333333333333333333333333333333333333",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-31/PM25/-1",
      "start_pst": "2025-12-30T23:00:00",
      "end_pst": "2025-12-31T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-31",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "3.0241999478260869565217391304347826086956521739130",
      "contrast": "5.1758000521739130434782608695652173913043478260870",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-31/NO2/-1",
      "start_pst": "2025-12-30T23:00:00",
      "end_pst": "2025-12-31T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-31",
      "metric": "no2_daily_mean",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "3.0304347826086956521739130434782608695652173913043",
      "contrast": "5.1695652173913043478260869565217391304347826086957",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-31/NO2/-1",
      "start_pst": "2025-12-30T23:00:00",
      "end_pst": "2025-12-31T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.7",
      "town": "6.0717659",
      "contrast": "5.6282341",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-31/NO2/-1",
      "start_pst": "2025-12-30T23:00:00",
      "end_pst": "2025-12-31T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": -1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.7",
      "town": "6.1",
      "contrast": "5.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-31/NO2/-1",
      "start_pst": "2025-12-30T23:00:00",
      "end_pst": "2025-12-31T23:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.8063103",
      "contrast": "2.4936897",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-31/PM25/+0",
      "start_pst": "2025-12-31T00:00:00",
      "end_pst": "2026-01-01T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": "3.8083333333333333333333333333333333333333333333333",
      "contrast": "2.4916666666666666666666666666666666666666666666667",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 24,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-31/PM25/+0",
      "start_pst": "2025-12-31T00:00:00",
      "end_pst": "2026-01-01T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-31",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "3.0034918954545454545454545454545454545454545454545",
      "contrast": "5.1965081045454545454545454545454545454545454545455",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-31/NO2/+0",
      "start_pst": "2025-12-31T00:00:00",
      "end_pst": "2026-01-01T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-31",
      "metric": "no2_daily_mean",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": "3.0090909090909090909090909090909090909090909090909",
      "contrast": "5.1909090909090909090909090909090909090909090909091",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-31/NO2/+0",
      "start_pst": "2025-12-31T00:00:00",
      "end_pst": "2026-01-01T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.7",
      "town": "6.0717659",
      "contrast": "5.6282341",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-31/NO2/+0",
      "start_pst": "2025-12-31T00:00:00",
      "end_pst": "2026-01-01T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 0,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.7",
      "town": "6.1",
      "contrast": "5.6",
      "onsite_numeric": true,
      "town_source_rows": 24,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": true,
      "town_eligible": true,
      "pair_eligible": true,
      "exclusion_reasons": [],
      "window_id": "2025-12-31/NO2/+0",
      "start_pst": "2025-12-31T00:00:00",
      "end_pst": "2026-01-01T00:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 23,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": false,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "outside_acquired_verified_coverage"
      ],
      "window_id": "2025-12-31/PM25/+1",
      "start_pst": "2025-12-31T01:00:00",
      "end_pst": "2026-01-01T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-31",
      "metric": "pm25_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ug/m3",
      "onsite_printed": "6.3",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "6.3",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 23,
      "town_valid_hours": 23,
      "town_expected_hours": 24,
      "source_window_available": false,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "outside_acquired_verified_coverage"
      ],
      "window_id": "2025-12-31/PM25/+1",
      "start_pst": "2025-12-31T01:00:00",
      "end_pst": "2026-01-01T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "pm25_24h_ug_m3",
        "value_column": 2
      }
    },
    {
      "date": "2025-12-31",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 23,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": false,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "outside_acquired_verified_coverage"
      ],
      "window_id": "2025-12-31/NO2/+1",
      "start_pst": "2025-12-31T01:00:00",
      "end_pst": "2026-01-01T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-31",
      "metric": "no2_daily_mean",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "8.2",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "8.2",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 23,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": false,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "outside_acquired_verified_coverage"
      ],
      "window_id": "2025-12-31/NO2/+1",
      "start_pst": "2025-12-31T01:00:00",
      "end_pst": "2026-01-01T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_24h_ppb",
        "value_column": 5
      }
    },
    {
      "date": "2025-12-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "RAW_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 23,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": false,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "outside_acquired_verified_coverage"
      ],
      "window_id": "2025-12-31/NO2/+1",
      "start_pst": "2025-12-31T01:00:00",
      "end_pst": "2026-01-01T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    },
    {
      "date": "2025-12-31",
      "metric": "no2_daily_max_1h",
      "shift_hours": 1,
      "stream": "ROUNDED_VALUE",
      "unit": "ppb",
      "onsite_printed": "11.7",
      "onsite_status": "numeric_as_printed",
      "onsite_footnote": "",
      "onsite": "11.7",
      "town": null,
      "contrast": null,
      "onsite_numeric": true,
      "town_source_rows": 23,
      "town_valid_hours": 22,
      "town_expected_hours": 24,
      "source_window_available": false,
      "town_eligible": false,
      "pair_eligible": false,
      "exclusion_reasons": [
        "outside_acquired_verified_coverage"
      ],
      "window_id": "2025-12-31/NO2/+1",
      "start_pst": "2025-12-31T01:00:00",
      "end_pst": "2026-01-01T01:00:00",
      "onsite_source": {
        "month": "2025-12",
        "date_printed": "12/31/2025",
        "table": "B.1",
        "pdf_page": 34,
        "printed_page": "B-1",
        "table_row": 31,
        "source_url": "https://woodfibrelng.ca/wp-content/uploads/2026/02/WLNG-AQMS-Monthly-Report-2025-12-December-2025_fin_v.02.pdf",
        "source_pdf_path": "work/onsite-town-2025/sources/2025-12.pdf",
        "source_pdf_sha256": "b1af4c2824b022d8b355e0763e168c2c8fb23b6159c760ef5abbbf13f550f655",
        "source_csv_path": "work/onsite-town-2025/onsite/2025-12/table-b1-air-native.csv",
        "source_csv_sha256": "4d62dfd1bdee9e9c0362537aad1314c193a040f3b205d17b0e8332e76ce86582",
        "field": "no2_daily_max_1h_ppb",
        "value_column": 6
      }
    }
  ],
  "summaries": [
    {
      "period": "2025",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 365,
      "pair_count": 330,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-03-05",
        "2025-03-06",
        "2025-03-17",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-06-05",
        "2025-06-08",
        "2025-06-09",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-11-14",
        "2025-12-18",
        "2025-12-19",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-17": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-17": [
          "onsite_explicitly_missing"
        ],
        "2025-04-18": [
          "onsite_explicitly_missing"
        ],
        "2025-04-19": [
          "onsite_explicitly_missing"
        ],
        "2025-04-20": [
          "onsite_explicitly_missing"
        ],
        "2025-04-21": [
          "onsite_explicitly_missing"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-10-23": [
          "onsite_explicitly_missing"
        ],
        "2025-10-24": [
          "onsite_explicitly_missing"
        ],
        "2025-10-25": [
          "onsite_explicitly_missing"
        ],
        "2025-10-26": [
          "onsite_explicitly_missing"
        ],
        "2025-10-27": [
          "onsite_explicitly_missing"
        ],
        "2025-10-28": [
          "onsite_explicitly_missing"
        ],
        "2025-11-14": [
          "onsite_explicitly_missing"
        ],
        "2025-12-18": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-19": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-21": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-22": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-24": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-25": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-28": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-29": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 19,
        "town_fewer_than_18_numeric_hours": 16
      },
      "onsite_mean_of_daily_values": "8.3703030303030303030303030303030303030303030303030",
      "town_mean_of_daily_values": "5.8331441230480243758275794889067200280014925323867",
      "mean_contrast": "2.5371589072550059272027235413963102750288104979176",
      "median_contrast": "2.4581974145833333333333333333333333333333333333333",
      "mean_absolute_contrast": "2.6141001213757589115920715671079723503272494327202",
      "minimum_contrast": "-2.0039576090909090909090909090909090909090909090909",
      "minimum_contrast_dates": [
        "2025-04-22"
      ],
      "maximum_contrast": "16.754190725",
      "maximum_contrast_dates": [
        "2025-09-02"
      ],
      "positive_contrast_days": 314,
      "negative_contrast_days": 16,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 309,
      "contrast_below_minus_0_1_days": 14,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7893
    },
    {
      "period": "2025",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 365,
      "pair_count": 330,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-03-05",
        "2025-03-06",
        "2025-03-17",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-06-05",
        "2025-06-08",
        "2025-06-09",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-11-14",
        "2025-12-18",
        "2025-12-19",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-17": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-17": [
          "onsite_explicitly_missing"
        ],
        "2025-04-18": [
          "onsite_explicitly_missing"
        ],
        "2025-04-19": [
          "onsite_explicitly_missing"
        ],
        "2025-04-20": [
          "onsite_explicitly_missing"
        ],
        "2025-04-21": [
          "onsite_explicitly_missing"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-10-23": [
          "onsite_explicitly_missing"
        ],
        "2025-10-24": [
          "onsite_explicitly_missing"
        ],
        "2025-10-25": [
          "onsite_explicitly_missing"
        ],
        "2025-10-26": [
          "onsite_explicitly_missing"
        ],
        "2025-10-27": [
          "onsite_explicitly_missing"
        ],
        "2025-10-28": [
          "onsite_explicitly_missing"
        ],
        "2025-11-14": [
          "onsite_explicitly_missing"
        ],
        "2025-12-18": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-19": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-21": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-22": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-24": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-25": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-28": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-29": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 19,
        "town_fewer_than_18_numeric_hours": 16
      },
      "onsite_mean_of_daily_values": "8.3703030303030303030303030303030303030303030303030",
      "town_mean_of_daily_values": "5.8350060763867415724603159593798245764128851293385",
      "mean_contrast": "2.5352969539162887305699870709232057266174179009629",
      "median_contrast": "2.51901336875",
      "mean_absolute_contrast": "2.6182882531334604477417042426403774437891350726801",
      "minimum_contrast": "-2.4142362",
      "minimum_contrast_dates": [
        "2025-04-22"
      ],
      "maximum_contrast": "15.500254116666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-09-02"
      ],
      "positive_contrast_days": 314,
      "negative_contrast_days": 16,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 309,
      "contrast_below_minus_0_1_days": 13,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7892
    },
    {
      "period": "2025",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 365,
      "pair_count": 329,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-03-05",
        "2025-03-06",
        "2025-03-17",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-06-05",
        "2025-06-08",
        "2025-06-09",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-11-14",
        "2025-12-18",
        "2025-12-19",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-31"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-17": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-17": [
          "onsite_explicitly_missing"
        ],
        "2025-04-18": [
          "onsite_explicitly_missing"
        ],
        "2025-04-19": [
          "onsite_explicitly_missing"
        ],
        "2025-04-20": [
          "onsite_explicitly_missing"
        ],
        "2025-04-21": [
          "onsite_explicitly_missing"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-10-23": [
          "onsite_explicitly_missing"
        ],
        "2025-10-24": [
          "onsite_explicitly_missing"
        ],
        "2025-10-25": [
          "onsite_explicitly_missing"
        ],
        "2025-10-26": [
          "onsite_explicitly_missing"
        ],
        "2025-10-27": [
          "onsite_explicitly_missing"
        ],
        "2025-10-28": [
          "onsite_explicitly_missing"
        ],
        "2025-11-14": [
          "onsite_explicitly_missing"
        ],
        "2025-12-18": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-19": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-21": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-22": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-24": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-25": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-28": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-29": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-31": [
          "outside_acquired_verified_coverage"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 19,
        "outside_acquired_verified_coverage": 1,
        "town_fewer_than_18_numeric_hours": 16
      },
      "onsite_mean_of_daily_values": "8.3765957446808510638297872340425531914893617021277",
      "town_mean_of_daily_values": "5.8440707698945158799060435668143652257498389943304",
      "mean_contrast": "2.5325249747863351839237436672281879657395227077991",
      "median_contrast": "2.5230955708333333333333333333333333333333333333333",
      "mean_absolute_contrast": "2.6221033311209580079082697794138746195112828625381",
      "minimum_contrast": "-2.8281524545454545454545454545454545454545454545455",
      "minimum_contrast_dates": [
        "2025-04-22"
      ],
      "maximum_contrast": "13.564384741666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-09-02"
      ],
      "positive_contrast_days": 308,
      "negative_contrast_days": 21,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 305,
      "contrast_below_minus_0_1_days": 15,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7866
    },
    {
      "period": "2025",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 365,
      "pair_count": 330,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-03-05",
        "2025-03-06",
        "2025-03-17",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-06-05",
        "2025-06-08",
        "2025-06-09",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-11-14",
        "2025-12-18",
        "2025-12-19",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-17": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-17": [
          "onsite_explicitly_missing"
        ],
        "2025-04-18": [
          "onsite_explicitly_missing"
        ],
        "2025-04-19": [
          "onsite_explicitly_missing"
        ],
        "2025-04-20": [
          "onsite_explicitly_missing"
        ],
        "2025-04-21": [
          "onsite_explicitly_missing"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-10-23": [
          "onsite_explicitly_missing"
        ],
        "2025-10-24": [
          "onsite_explicitly_missing"
        ],
        "2025-10-25": [
          "onsite_explicitly_missing"
        ],
        "2025-10-26": [
          "onsite_explicitly_missing"
        ],
        "2025-10-27": [
          "onsite_explicitly_missing"
        ],
        "2025-10-28": [
          "onsite_explicitly_missing"
        ],
        "2025-11-14": [
          "onsite_explicitly_missing"
        ],
        "2025-12-18": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-19": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-21": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-22": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-24": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-25": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-28": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-29": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 19,
        "town_fewer_than_18_numeric_hours": 16
      },
      "onsite_mean_of_daily_values": "8.3703030303030303030303030303030303030303030303030",
      "town_mean_of_daily_values": "5.8331209953107706384178196119115611522518117067718",
      "mean_contrast": "2.5371820349922596646124834183914691507784913235300",
      "median_contrast": "2.45625",
      "mean_absolute_contrast": "2.6141563233301843661735486158203029432486474300496",
      "minimum_contrast": "-2.0090909090909090909090909090909090909090909090909",
      "minimum_contrast_dates": [
        "2025-04-22"
      ],
      "maximum_contrast": "16.7625",
      "maximum_contrast_dates": [
        "2025-09-02"
      ],
      "positive_contrast_days": 313,
      "negative_contrast_days": 17,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 309,
      "contrast_below_minus_0_1_days": 14,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7893
    },
    {
      "period": "2025",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 365,
      "pair_count": 330,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-03-05",
        "2025-03-06",
        "2025-03-17",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-06-05",
        "2025-06-08",
        "2025-06-09",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-11-14",
        "2025-12-18",
        "2025-12-19",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-17": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-17": [
          "onsite_explicitly_missing"
        ],
        "2025-04-18": [
          "onsite_explicitly_missing"
        ],
        "2025-04-19": [
          "onsite_explicitly_missing"
        ],
        "2025-04-20": [
          "onsite_explicitly_missing"
        ],
        "2025-04-21": [
          "onsite_explicitly_missing"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-10-23": [
          "onsite_explicitly_missing"
        ],
        "2025-10-24": [
          "onsite_explicitly_missing"
        ],
        "2025-10-25": [
          "onsite_explicitly_missing"
        ],
        "2025-10-26": [
          "onsite_explicitly_missing"
        ],
        "2025-10-27": [
          "onsite_explicitly_missing"
        ],
        "2025-10-28": [
          "onsite_explicitly_missing"
        ],
        "2025-11-14": [
          "onsite_explicitly_missing"
        ],
        "2025-12-18": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-19": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-21": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-22": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-24": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-25": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-28": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-29": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 19,
        "town_fewer_than_18_numeric_hours": 16
      },
      "onsite_mean_of_daily_values": "8.3703030303030303030303030303030303030303030303030",
      "town_mean_of_daily_values": "5.8349865596288001114296100774153613762517444647679",
      "mean_contrast": "2.5353164706742301916006929528876689267785585655358",
      "median_contrast": "2.5208333333333333333333333333333333333333333333334",
      "mean_absolute_contrast": "2.6183582521251025515639620070658140140145548924412",
      "minimum_contrast": "-2.4227272727272727272727272727272727272727272727273",
      "minimum_contrast_dates": [
        "2025-04-22"
      ],
      "maximum_contrast": "15.508333333333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-09-02"
      ],
      "positive_contrast_days": 314,
      "negative_contrast_days": 16,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 309,
      "contrast_below_minus_0_1_days": 14,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7892
    },
    {
      "period": "2025",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 365,
      "pair_count": 329,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-03-05",
        "2025-03-06",
        "2025-03-17",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-06-05",
        "2025-06-08",
        "2025-06-09",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-11-14",
        "2025-12-18",
        "2025-12-19",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-31"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-17": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-17": [
          "onsite_explicitly_missing"
        ],
        "2025-04-18": [
          "onsite_explicitly_missing"
        ],
        "2025-04-19": [
          "onsite_explicitly_missing"
        ],
        "2025-04-20": [
          "onsite_explicitly_missing"
        ],
        "2025-04-21": [
          "onsite_explicitly_missing"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-10-23": [
          "onsite_explicitly_missing"
        ],
        "2025-10-24": [
          "onsite_explicitly_missing"
        ],
        "2025-10-25": [
          "onsite_explicitly_missing"
        ],
        "2025-10-26": [
          "onsite_explicitly_missing"
        ],
        "2025-10-27": [
          "onsite_explicitly_missing"
        ],
        "2025-10-28": [
          "onsite_explicitly_missing"
        ],
        "2025-11-14": [
          "onsite_explicitly_missing"
        ],
        "2025-12-18": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-19": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-21": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-22": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-24": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-25": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-28": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-29": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-31": [
          "outside_acquired_verified_coverage"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 19,
        "outside_acquired_verified_coverage": 1,
        "town_fewer_than_18_numeric_hours": 16
      },
      "onsite_mean_of_daily_values": "8.3765957446808510638297872340425531914893617021277",
      "town_mean_of_daily_values": "5.8440622047809071798277003705004790048574347434359",
      "mean_contrast": "2.5325335398999438840020868635420741866319269586921",
      "median_contrast": "2.5333333333333333333333333333333333333333333333333",
      "mean_absolute_contrast": "2.6221669561291047940140607053031499902609220770488",
      "minimum_contrast": "-2.8363636363636363636363636363636363636363636363636",
      "minimum_contrast_dates": [
        "2025-04-22"
      ],
      "maximum_contrast": "13.570833333333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-09-02"
      ],
      "positive_contrast_days": 308,
      "negative_contrast_days": 21,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 305,
      "contrast_below_minus_0_1_days": 15,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7866
    },
    {
      "period": "2025",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 365,
      "pair_count": 319,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27",
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28",
        "2025-04-01",
        "2025-04-02",
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ],
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ],
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ],
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ],
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 33,
        "town_fewer_than_18_numeric_hours": 13
      },
      "onsite_mean_of_daily_values": "9.2153605015673981191222570532915360501567398119122",
      "town_mean_of_daily_values": "5.1789468685306947284451355382397038602428730331292",
      "mean_contrast": "4.0364136330367033906771215150518321899138667787828",
      "median_contrast": "3.9948163739130434782608695652173913043478260869565",
      "mean_absolute_contrast": "4.5202136324946625363761293404127489477159139935398",
      "minimum_contrast": "-10.098700417391304347826086956521739130434782608696",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "13.089745434782608695652173913043478260869565217391",
      "maximum_contrast_dates": [
        "2025-06-06"
      ],
      "positive_contrast_days": 286,
      "negative_contrast_days": 33,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 284,
      "contrast_below_minus_0_1_days": 31,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7311
    },
    {
      "period": "2025",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 365,
      "pair_count": 319,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27",
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28",
        "2025-04-01",
        "2025-04-02",
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ],
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ],
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ],
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ],
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 33,
        "town_fewer_than_18_numeric_hours": 13
      },
      "onsite_mean_of_daily_values": "9.2153605015673981191222570532915360501567398119122",
      "town_mean_of_daily_values": "5.1826295026048381389371181556428645802619103050235",
      "mean_contrast": "4.0327309989625599801851388976486714698948295068897",
      "median_contrast": "4.0164962434782608695652173913043478260869565217391",
      "mean_absolute_contrast": "4.5209343021099967011461025219696123478681960206743",
      "minimum_contrast": "-10.158775017391304347826086956521739130434782608696",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "13.169333826086956521739130434782608695652173913044",
      "maximum_contrast_dates": [
        "2025-06-06"
      ],
      "positive_contrast_days": 285,
      "negative_contrast_days": 34,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 283,
      "contrast_below_minus_0_1_days": 31,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7311
    },
    {
      "period": "2025",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 365,
      "pair_count": 318,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27",
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28",
        "2025-04-01",
        "2025-04-02",
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-11-04",
        "2025-11-19",
        "2025-11-20",
        "2025-12-31"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ],
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ],
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ],
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ],
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ],
        "2025-12-31": [
          "outside_acquired_verified_coverage"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 33,
        "outside_acquired_verified_coverage": 1,
        "town_fewer_than_18_numeric_hours": 13
      },
      "onsite_mean_of_daily_values": "9.2185534591194968553459119496855345911949685534591",
      "town_mean_of_daily_values": "5.1939450102646047278187513928630460731838047152591",
      "mean_contrast": "4.0246084488548921275271605568224885180111638382003",
      "median_contrast": "4.0090503586956521739130434782608695652173913043478",
      "mean_absolute_contrast": "4.5188889888469067428309257245831659717070536983311",
      "minimum_contrast": "-10.538021022727272727272727272727272727272727272727",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "13.340990590909090909090909090909090909090909090909",
      "maximum_contrast_dates": [
        "2025-06-06"
      ],
      "positive_contrast_days": 285,
      "negative_contrast_days": 33,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 284,
      "contrast_below_minus_0_1_days": 32,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7285
    },
    {
      "period": "2025",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 365,
      "pair_count": 319,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27",
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28",
        "2025-04-01",
        "2025-04-02",
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ],
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ],
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ],
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ],
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 33,
        "town_fewer_than_18_numeric_hours": 13
      },
      "onsite_mean_of_daily_values": "9.2153605015673981191222570532915360501567398119122",
      "town_mean_of_daily_values": "5.1783043246598908959116415196987351101681496292818",
      "mean_contrast": "4.0370561769075072232106155335928009399885901826313",
      "median_contrast": "3.9869565217391304347826086956521739130434782608696",
      "mean_absolute_contrast": "4.5207147934452583563434836362965599782597982062837",
      "minimum_contrast": "-10.095652173913043478260869565217391304347826086957",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "13.1",
      "maximum_contrast_dates": [
        "2025-06-06"
      ],
      "positive_contrast_days": 286,
      "negative_contrast_days": 33,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 284,
      "contrast_below_minus_0_1_days": 31,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7311
    },
    {
      "period": "2025",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 365,
      "pair_count": 319,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27",
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28",
        "2025-04-01",
        "2025-04-02",
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ],
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ],
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ],
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ],
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 33,
        "town_fewer_than_18_numeric_hours": 13
      },
      "onsite_mean_of_daily_values": "9.2153605015673981191222570532915360501567398119122",
      "town_mean_of_daily_values": "5.1819684142890960534770208880522144942566310829564",
      "mean_contrast": "4.0333920872783020656452361652393215559001087289564",
      "median_contrast": "4.0086956521739130434782608695652173913043478260870",
      "mean_absolute_contrast": "4.5214281095020749117145894833606001945277283684624",
      "minimum_contrast": "-10.156521739130434782608695652173913043478260869565",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "13.182608695652173913043478260869565217391304347826",
      "maximum_contrast_dates": [
        "2025-06-06"
      ],
      "positive_contrast_days": 285,
      "negative_contrast_days": 34,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 283,
      "contrast_below_minus_0_1_days": 31,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7311
    },
    {
      "period": "2025",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 365,
      "pair_count": 318,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27",
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28",
        "2025-04-01",
        "2025-04-02",
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-11-04",
        "2025-11-19",
        "2025-11-20",
        "2025-12-31"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ],
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ],
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ],
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ],
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ],
        "2025-12-31": [
          "outside_acquired_verified_coverage"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 33,
        "outside_acquired_verified_coverage": 1,
        "town_fewer_than_18_numeric_hours": 13
      },
      "onsite_mean_of_daily_values": "9.2185534591194968553459119496855345911949685534591",
      "town_mean_of_daily_values": "5.1932142098602959532971190498931097350854701573582",
      "mean_contrast": "4.0253392492592009020487928997924248561094983961013",
      "median_contrast": "4.0043478260869565217391304347826086956521739130434",
      "mean_absolute_contrast": "4.5194340114835775644894422149290246522663084987686",
      "minimum_contrast": "-10.536363636363636363636363636363636363636363636364",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "13.354545454545454545454545454545454545454545454546",
      "maximum_contrast_dates": [
        "2025-06-06"
      ],
      "positive_contrast_days": 285,
      "negative_contrast_days": 33,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 284,
      "contrast_below_minus_0_1_days": 31,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7285
    },
    {
      "period": "2025",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 365,
      "pair_count": 319,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27",
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28",
        "2025-04-01",
        "2025-04-02",
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ],
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ],
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ],
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ],
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 33,
        "town_fewer_than_18_numeric_hours": 13
      },
      "onsite_mean_of_daily_values": "19.711598746081504702194357366771159874608150470219",
      "town_mean_of_daily_values": "10.810249961442006269592476489028213166144200626959",
      "mean_contrast": "8.9013487846394984326018808777429467084639498432602",
      "median_contrast": "8.2521141",
      "mean_absolute_contrast": "9.9337285112852664576802507836990595611285266457680",
      "minimum_contrast": "-22.6188316",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "35.676133",
      "maximum_contrast_dates": [
        "2025-06-11"
      ],
      "positive_contrast_days": 284,
      "negative_contrast_days": 35,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 283,
      "contrast_below_minus_0_1_days": 34,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7311
    },
    {
      "period": "2025",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 365,
      "pair_count": 319,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27",
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28",
        "2025-04-01",
        "2025-04-02",
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ],
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ],
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ],
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ],
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 33,
        "town_fewer_than_18_numeric_hours": 13
      },
      "onsite_mean_of_daily_values": "19.711598746081504702194357366771159874608150470219",
      "town_mean_of_daily_values": "10.776802618495297805642633228840125391849529780564",
      "mean_contrast": "8.9347961275862068965517241379310344827586206896552",
      "median_contrast": "8.2521141",
      "mean_absolute_contrast": "9.9671758542319749216300940438871473354231974921630",
      "minimum_contrast": "-22.6188316",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "35.676133",
      "maximum_contrast_dates": [
        "2025-06-11"
      ],
      "positive_contrast_days": 284,
      "negative_contrast_days": 35,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 283,
      "contrast_below_minus_0_1_days": 34,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7311
    },
    {
      "period": "2025",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 365,
      "pair_count": 318,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27",
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28",
        "2025-04-01",
        "2025-04-02",
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-11-04",
        "2025-11-19",
        "2025-11-20",
        "2025-12-31"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ],
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ],
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ],
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ],
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ],
        "2025-12-31": [
          "outside_acquired_verified_coverage"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 33,
        "outside_acquired_verified_coverage": 1,
        "town_fewer_than_18_numeric_hours": 13
      },
      "onsite_mean_of_daily_values": "19.736792452830188679245283018867924528301886792453",
      "town_mean_of_daily_values": "10.777099249371069182389937106918238993710691823899",
      "mean_contrast": "8.9596932034591194968553459119496855345911949685535",
      "median_contrast": "8.3067180",
      "mean_absolute_contrast": "9.9953194072327044025157232704402515723270440251572",
      "minimum_contrast": "-22.6188316",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "35.676133",
      "maximum_contrast_dates": [
        "2025-06-11"
      ],
      "positive_contrast_days": 283,
      "negative_contrast_days": 35,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 282,
      "contrast_below_minus_0_1_days": 34,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7285
    },
    {
      "period": "2025",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 365,
      "pair_count": 319,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27",
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28",
        "2025-04-01",
        "2025-04-02",
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ],
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ],
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ],
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ],
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 33,
        "town_fewer_than_18_numeric_hours": 13
      },
      "onsite_mean_of_daily_values": "19.711598746081504702194357366771159874608150470219",
      "town_mean_of_daily_values": "10.805642633228840125391849529780564263322884012539",
      "mean_contrast": "8.9059561128526645768025078369905956112852664576803",
      "median_contrast": "8.3",
      "mean_absolute_contrast": "9.9373040752351097178683385579937304075235109717868",
      "minimum_contrast": "-22.6",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "35.7",
      "maximum_contrast_dates": [
        "2025-06-11"
      ],
      "positive_contrast_days": 284,
      "negative_contrast_days": 34,
      "zero_contrast_days": 1,
      "contrast_above_0_1_days": 283,
      "contrast_below_minus_0_1_days": 33,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7311
    },
    {
      "period": "2025",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 365,
      "pair_count": 319,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27",
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28",
        "2025-04-01",
        "2025-04-02",
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ],
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ],
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ],
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ],
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 33,
        "town_fewer_than_18_numeric_hours": 13
      },
      "onsite_mean_of_daily_values": "19.711598746081504702194357366771159874608150470219",
      "town_mean_of_daily_values": "10.772100313479623824451410658307210031347962382445",
      "mean_contrast": "8.9394984326018808777429467084639498432601880877743",
      "median_contrast": "8.3",
      "mean_absolute_contrast": "9.9708463949843260188087774294670846394984326018809",
      "minimum_contrast": "-22.6",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "35.7",
      "maximum_contrast_dates": [
        "2025-06-11"
      ],
      "positive_contrast_days": 284,
      "negative_contrast_days": 34,
      "zero_contrast_days": 1,
      "contrast_above_0_1_days": 283,
      "contrast_below_minus_0_1_days": 33,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7311
    },
    {
      "period": "2025",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 365,
      "pair_count": 318,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23",
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27",
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28",
        "2025-04-01",
        "2025-04-02",
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-11-04",
        "2025-11-19",
        "2025-11-20",
        "2025-12-31"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ],
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ],
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ],
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ],
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ],
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ],
        "2025-12-31": [
          "outside_acquired_verified_coverage"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 33,
        "outside_acquired_verified_coverage": 1,
        "town_fewer_than_18_numeric_hours": 13
      },
      "onsite_mean_of_daily_values": "19.736792452830188679245283018867924528301886792453",
      "town_mean_of_daily_values": "10.772327044025157232704402515723270440251572327044",
      "mean_contrast": "8.9644654088050314465408805031446540880503144654088",
      "median_contrast": "8.35",
      "mean_absolute_contrast": "9.9990566037735849056603773584905660377358490566038",
      "minimum_contrast": "-22.6",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "35.7",
      "maximum_contrast_dates": [
        "2025-06-11"
      ],
      "positive_contrast_days": 283,
      "negative_contrast_days": 34,
      "zero_contrast_days": 1,
      "contrast_above_0_1_days": 282,
      "contrast_below_minus_0_1_days": 33,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 7285
    },
    {
      "period": "2025-01",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.024",
      "town_mean_of_daily_values": "4.33763364150000000000000000000000000000000000000",
      "mean_contrast": "1.6863663585000000000000000000000000000000000000000",
      "median_contrast": "1.6998510416666666666666666666666666666666666666667",
      "mean_absolute_contrast": "1.8545658345000000000000000000000000000000000000000",
      "minimum_contrast": "-1.7687218",
      "minimum_contrast_dates": [
        "2025-01-29"
      ],
      "maximum_contrast": "3.5554815333333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-01-31"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 22,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 600
    },
    {
      "period": "2025-01",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.024",
      "town_mean_of_daily_values": "4.34958760600000000000000000000000000000000000000",
      "mean_contrast": "1.6744123940000000000000000000000000000000000000000",
      "median_contrast": "1.7487066916666666666666666666666666666666666666667",
      "mean_absolute_contrast": "1.8921228513333333333333333333333333333333333333333",
      "minimum_contrast": "-2.0761785708333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-01-29"
      ],
      "maximum_contrast": "3.7068644125",
      "maximum_contrast_dates": [
        "2025-01-31"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 22,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 600
    },
    {
      "period": "2025-01",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.024",
      "town_mean_of_daily_values": "4.35875646900000000000000000000000000000000000000",
      "mean_contrast": "1.665243531000000000000000000000000000000000000000",
      "median_contrast": "1.9369421875",
      "mean_absolute_contrast": "1.9170880376666666666666666666666666666666666666666",
      "minimum_contrast": "-2.1643131791666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-01-29"
      ],
      "maximum_contrast": "3.8169424958333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-01-31"
      ],
      "positive_contrast_days": 22,
      "negative_contrast_days": 3,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 21,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 600
    },
    {
      "period": "2025-01",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.024",
      "town_mean_of_daily_values": "4.33750000000000000000000000000000000000000000000",
      "mean_contrast": "1.686500000000000000000000000000000000000000000000",
      "median_contrast": "1.7041666666666666666666666666666666666666666666667",
      "mean_absolute_contrast": "1.8541666666666666666666666666666666666666666666666",
      "minimum_contrast": "-1.7625",
      "minimum_contrast_dates": [
        "2025-01-29"
      ],
      "maximum_contrast": "3.5541666666666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-01-31"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 22,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 600
    },
    {
      "period": "2025-01",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.024",
      "town_mean_of_daily_values": "4.3496666666666666666666666666666666666666666666664",
      "mean_contrast": "1.6743333333333333333333333333333333333333333333334",
      "median_contrast": "1.7541666666666666666666666666666666666666666666667",
      "mean_absolute_contrast": "1.8916666666666666666666666666666666666666666666667",
      "minimum_contrast": "-2.0708333333333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-01-29"
      ],
      "maximum_contrast": "3.7041666666666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-01-31"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 22,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 600
    },
    {
      "period": "2025-01",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.024",
      "town_mean_of_daily_values": "4.3588333333333333333333333333333333333333333333332",
      "mean_contrast": "1.6651666666666666666666666666666666666666666666667",
      "median_contrast": "1.9416666666666666666666666666666666666666666666667",
      "mean_absolute_contrast": "1.9175000000000000000000000000000000000000000000000",
      "minimum_contrast": "-2.1625",
      "minimum_contrast_dates": [
        "2025-01-29"
      ],
      "maximum_contrast": "3.8166666666666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-01-31"
      ],
      "positive_contrast_days": 22,
      "negative_contrast_days": 3,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 21,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 600
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.712",
      "town_mean_of_daily_values": "6.4272336518840579710144927536231884057971014492756",
      "mean_contrast": "0.28476634811594202898550724637681159420289855072458",
      "median_contrast": "1.5585139565217391304347826086956521739130434782609",
      "mean_absolute_contrast": "3.0086477204347826086956521739130434782608695652174",
      "minimum_contrast": "-6.7312035217391304347826086956521739130434782608696",
      "minimum_contrast_dates": [
        "2025-01-25"
      ],
      "maximum_contrast": "5.3009771739130434782608695652173913043478260869565",
      "maximum_contrast_dates": [
        "2025-01-03"
      ],
      "positive_contrast_days": 15,
      "negative_contrast_days": 10,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 15,
      "contrast_below_minus_0_1_days": 10,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 577
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.712",
      "town_mean_of_daily_values": "6.4310665355797101449275362318840579710144927536236",
      "mean_contrast": "0.28093346442028985507246376811594202898550724637685",
      "median_contrast": "1.66902875",
      "mean_absolute_contrast": "3.0110254860144927536231884057971014492753623188407",
      "minimum_contrast": "-6.4919843478260869565217391304347826086956521739130",
      "minimum_contrast_dates": [
        "2025-01-25"
      ],
      "maximum_contrast": "5.2557178260869565217391304347826086956521739130435",
      "maximum_contrast_dates": [
        "2025-01-03"
      ],
      "positive_contrast_days": 15,
      "negative_contrast_days": 10,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 15,
      "contrast_below_minus_0_1_days": 10,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 577
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.712",
      "town_mean_of_daily_values": "6.441987746594202898550724637681159420289855072464",
      "mean_contrast": "0.27001225340579710144927536231884057971014492753614",
      "median_contrast": "1.5943376956521739130434782608695652173913043478261",
      "mean_absolute_contrast": "3.0087294638405797101449275362318840579710144927536",
      "minimum_contrast": "-6.576283521739130434782608695652173913043478260870",
      "minimum_contrast_dates": [
        "2025-01-29"
      ],
      "maximum_contrast": "5.3228829565217391304347826086956521739130434782609",
      "maximum_contrast_dates": [
        "2025-01-03"
      ],
      "positive_contrast_days": 15,
      "negative_contrast_days": 10,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 15,
      "contrast_below_minus_0_1_days": 10,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 576
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.712",
      "town_mean_of_daily_values": "6.4255652173913043478260869565217391304347826086952",
      "mean_contrast": "0.28643478260869565217391304347826086956521739130443",
      "median_contrast": "1.5782608695652173913043478260869565217391304347826",
      "mean_absolute_contrast": "3.0085507246376811594202898550724637681159420289856",
      "minimum_contrast": "-6.7217391304347826086956521739130434782608695652174",
      "minimum_contrast_dates": [
        "2025-01-25"
      ],
      "maximum_contrast": "5.2956521739130434782608695652173913043478260869565",
      "maximum_contrast_dates": [
        "2025-01-03"
      ],
      "positive_contrast_days": 15,
      "negative_contrast_days": 10,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 15,
      "contrast_below_minus_0_1_days": 10,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 577
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.712",
      "town_mean_of_daily_values": "6.4294637681159420289855072463768115942028985507248",
      "mean_contrast": "0.28253623188405797101449275362318840579710144927539",
      "median_contrast": "1.6875",
      "mean_absolute_contrast": "3.0107246376811594202898550724637681159420289855072",
      "minimum_contrast": "-6.4826086956521739130434782608695652173913043478261",
      "minimum_contrast_dates": [
        "2025-01-25"
      ],
      "maximum_contrast": "5.2521739130434782608695652173913043478260869565217",
      "maximum_contrast_dates": [
        "2025-01-03"
      ],
      "positive_contrast_days": 15,
      "negative_contrast_days": 10,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 15,
      "contrast_below_minus_0_1_days": 10,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 577
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.712",
      "town_mean_of_daily_values": "6.4402463768115942028985507246376811594202898550724",
      "mean_contrast": "0.27175362318840579710144927536231884057971014492746",
      "median_contrast": "1.6130434782608695652173913043478260869565217391304",
      "mean_absolute_contrast": "3.0084492753623188405797101449275362318840579710145",
      "minimum_contrast": "-6.573913043478260869565217391304347826086956521739",
      "minimum_contrast_dates": [
        "2025-01-29"
      ],
      "maximum_contrast": "5.3173913043478260869565217391304347826086956521739",
      "maximum_contrast_dates": [
        "2025-01-03"
      ],
      "positive_contrast_days": 15,
      "negative_contrast_days": 10,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 15,
      "contrast_below_minus_0_1_days": 10,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 576
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "15.004",
      "town_mean_of_daily_values": "13.50479352",
      "mean_contrast": "1.49920648",
      "median_contrast": "1.13455",
      "mean_absolute_contrast": "5.76565048",
      "minimum_contrast": "-13.6987",
      "minimum_contrast_dates": [
        "2025-01-29"
      ],
      "maximum_contrast": "21.943915",
      "maximum_contrast_dates": [
        "2025-01-01"
      ],
      "positive_contrast_days": 15,
      "negative_contrast_days": 10,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 14,
      "contrast_below_minus_0_1_days": 10,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 577
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "15.004",
      "town_mean_of_daily_values": "13.50479352",
      "mean_contrast": "1.49920648",
      "median_contrast": "1.13455",
      "mean_absolute_contrast": "5.76565048",
      "minimum_contrast": "-13.6987",
      "minimum_contrast_dates": [
        "2025-01-29"
      ],
      "maximum_contrast": "21.943915",
      "maximum_contrast_dates": [
        "2025-01-01"
      ],
      "positive_contrast_days": 15,
      "negative_contrast_days": 10,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 14,
      "contrast_below_minus_0_1_days": 10,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 577
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "15.004",
      "town_mean_of_daily_values": "13.52089148",
      "mean_contrast": "1.48310852",
      "median_contrast": "1.13455",
      "mean_absolute_contrast": "5.74955252",
      "minimum_contrast": "-13.6987",
      "minimum_contrast_dates": [
        "2025-01-29"
      ],
      "maximum_contrast": "21.943915",
      "maximum_contrast_dates": [
        "2025-01-01"
      ],
      "positive_contrast_days": 15,
      "negative_contrast_days": 10,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 14,
      "contrast_below_minus_0_1_days": 10,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 576
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "15.004",
      "town_mean_of_daily_values": "13.504",
      "mean_contrast": "1.5",
      "median_contrast": "1.1",
      "mean_absolute_contrast": "5.756",
      "minimum_contrast": "-13.7",
      "minimum_contrast_dates": [
        "2025-01-29"
      ],
      "maximum_contrast": "21.9",
      "maximum_contrast_dates": [
        "2025-01-01"
      ],
      "positive_contrast_days": 15,
      "negative_contrast_days": 10,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 14,
      "contrast_below_minus_0_1_days": 10,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 577
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "15.004",
      "town_mean_of_daily_values": "13.504",
      "mean_contrast": "1.5",
      "median_contrast": "1.1",
      "mean_absolute_contrast": "5.756",
      "minimum_contrast": "-13.7",
      "minimum_contrast_dates": [
        "2025-01-29"
      ],
      "maximum_contrast": "21.9",
      "maximum_contrast_dates": [
        "2025-01-01"
      ],
      "positive_contrast_days": 15,
      "negative_contrast_days": 10,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 14,
      "contrast_below_minus_0_1_days": 10,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 577
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "excluded_dates": [
        "2025-01-17",
        "2025-01-18",
        "2025-01-19",
        "2025-01-20",
        "2025-01-21",
        "2025-01-23"
      ],
      "excluded_date_reasons": {
        "2025-01-17": [
          "onsite_explicitly_missing"
        ],
        "2025-01-18": [
          "onsite_explicitly_missing"
        ],
        "2025-01-19": [
          "onsite_explicitly_missing"
        ],
        "2025-01-20": [
          "onsite_explicitly_missing"
        ],
        "2025-01-21": [
          "onsite_explicitly_missing"
        ],
        "2025-01-23": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "15.004",
      "town_mean_of_daily_values": "13.52",
      "mean_contrast": "1.484",
      "median_contrast": "1.1",
      "mean_absolute_contrast": "5.74",
      "minimum_contrast": "-13.7",
      "minimum_contrast_dates": [
        "2025-01-29"
      ],
      "maximum_contrast": "21.9",
      "maximum_contrast_dates": [
        "2025-01-01"
      ],
      "positive_contrast_days": 15,
      "negative_contrast_days": 10,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 14,
      "contrast_below_minus_0_1_days": 10,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 576
    },
    {
      "period": "2025-02",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 28,
      "pair_count": 28,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "5.7142857142857142857142857142857142857142857142857",
      "town_mean_of_daily_values": "3.4142640058553312629399585921325051759834368530021",
      "mean_contrast": "2.3000217084303830227743271221532091097308488612836",
      "median_contrast": "2.2781528979166666666666666666666666666666666666666",
      "mean_absolute_contrast": "2.3175723500970496894409937888198757763975155279503",
      "minimum_contrast": "-0.2275203208333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-02-14"
      ],
      "maximum_contrast": "5.8213989291666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-02-19"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 25,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 668
    },
    {
      "period": "2025-02",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 28,
      "pair_count": 28,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "5.7142857142857142857142857142857142857142857142857",
      "town_mean_of_daily_values": "3.419891336601597160603371783496007098491570541260",
      "mean_contrast": "2.2943943776841171251109139307897071872227151730257",
      "median_contrast": "2.4994965604166666666666666666666666666666666666666",
      "mean_absolute_contrast": "2.3038072208388790298728186926944690919846199349305",
      "minimum_contrast": "-0.1317798041666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-02-14"
      ],
      "maximum_contrast": "5.7269070958333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-02-19"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 24,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 668
    },
    {
      "period": "2025-02",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 28,
      "pair_count": 28,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "5.7142857142857142857142857142857142857142857142857",
      "town_mean_of_daily_values": "3.4214439398282682638272700384501626737651582372079",
      "mean_contrast": "2.2928417744574460218870156758355516119491274770779",
      "median_contrast": "2.57781869375",
      "mean_absolute_contrast": "2.2994636869574460218870156758355516119491274770779",
      "minimum_contrast": "-0.047725625",
      "minimum_contrast_dates": [
        "2025-02-13"
      ],
      "maximum_contrast": "5.6169541375",
      "maximum_contrast_dates": [
        "2025-02-19"
      ],
      "positive_contrast_days": 25,
      "negative_contrast_days": 3,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 23,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 668
    },
    {
      "period": "2025-02",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 28,
      "pair_count": 28,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "5.7142857142857142857142857142857142857142857142857",
      "town_mean_of_daily_values": "3.4139723824312333629103815439219165927240461401952",
      "mean_contrast": "2.3003133318544809228039041703637976929902395740905",
      "median_contrast": "2.2812500000000000000000000000000000000000000000000",
      "mean_absolute_contrast": "2.3178728556640047323277136941733215025140490979001",
      "minimum_contrast": "-0.2291666666666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-02-14"
      ],
      "maximum_contrast": "5.8291666666666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-02-19"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 25,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 668
    },
    {
      "period": "2025-02",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 28,
      "pair_count": 28,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "5.7142857142857142857142857142857142857142857142857",
      "town_mean_of_daily_values": "3.4194764862466725820763087843833185448092280390417",
      "mean_contrast": "2.294809228039041703637976929902395740905057675244",
      "median_contrast": "2.5041666666666666666666666666666666666666666666667",
      "mean_absolute_contrast": "2.3043330375628512274475007394262052647145814847678",
      "minimum_contrast": "-0.1333333333333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-02-14"
      ],
      "maximum_contrast": "5.7333333333333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-02-19"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 24,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 668
    },
    {
      "period": "2025-02",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 28,
      "pair_count": 28,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "5.7142857142857142857142857142857142857142857142857",
      "town_mean_of_daily_values": "3.4210449940845903578822833481218574386276249630288",
      "mean_contrast": "2.2932407202011239278320023661638568470866607512569",
      "median_contrast": "2.5770833333333333333333333333333333333333333333334",
      "mean_absolute_contrast": "2.2988954821058858325939071280686187518485655131617",
      "minimum_contrast": "-0.05",
      "minimum_contrast_dates": [
        "2025-02-13"
      ],
      "maximum_contrast": "5.6208333333333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-02-19"
      ],
      "positive_contrast_days": 25,
      "negative_contrast_days": 3,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 23,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 668
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 28,
      "pair_count": 23,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "excluded_dates": [
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27"
      ],
      "excluded_date_reasons": {
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 4
      },
      "onsite_mean_of_daily_values": "8.8782608695652173913043478260869565217391304347826",
      "town_mean_of_daily_values": "5.4454733010311050008592541673827118061522598384604",
      "mean_contrast": "3.4327875685341123904450936587042447155868705963223",
      "median_contrast": "5.0999314565217391304347826086956521739130434782609",
      "mean_absolute_contrast": "5.2181543201409176834507647362089706135074755112561",
      "minimum_contrast": "-10.098700417391304347826086956521739130434782608696",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "11.365293330434782608695652173913043478260869565217",
      "maximum_contrast_dates": [
        "2025-02-22"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 6,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 17,
      "contrast_below_minus_0_1_days": 6,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 527
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 28,
      "pair_count": 23,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "excluded_dates": [
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27"
      ],
      "excluded_date_reasons": {
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 4
      },
      "onsite_mean_of_daily_values": "8.8782608695652173913043478260869565217391304347826",
      "town_mean_of_daily_values": "5.4586117645128028870940024059116686715930572263274",
      "mean_contrast": "3.4196491050524145042103454201752878501460732084550",
      "median_contrast": "5.2334284652173913043478260869565217391304347826087",
      "mean_absolute_contrast": "5.2300662536346451280288709400240591166867159305722",
      "minimum_contrast": "-10.158775017391304347826086956521739130434782608696",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "11.113587908695652173913043478260869565217391304348",
      "maximum_contrast_dates": [
        "2025-02-22"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 6,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 17,
      "contrast_below_minus_0_1_days": 6,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 528
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 28,
      "pair_count": 23,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "excluded_dates": [
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27"
      ],
      "excluded_date_reasons": {
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 4
      },
      "onsite_mean_of_daily_values": "8.8782608695652173913043478260869565217391304347826",
      "town_mean_of_daily_values": "5.4843211881881193790456550380936014206335567394170",
      "mean_contrast": "3.3939396813770980122586927879933551011055736953657",
      "median_contrast": "5.1724326391304347826086956521739130434782608695652",
      "mean_absolute_contrast": "5.2257837339519963338488858337629604170246892364091",
      "minimum_contrast": "-10.538021022727272727272727272727272727272727272727",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "10.938609530434782608695652173913043478260869565217",
      "maximum_contrast_dates": [
        "2025-02-22"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 6,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 17,
      "contrast_below_minus_0_1_days": 6,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 528
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 28,
      "pair_count": 23,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "excluded_dates": [
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27"
      ],
      "excluded_date_reasons": {
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 4
      },
      "onsite_mean_of_daily_values": "8.8782608695652173913043478260869565217391304347826",
      "town_mean_of_daily_values": "5.4447843272039869393366557827805464856504554047087",
      "mean_contrast": "3.4334765423612304519676920433064100360886750300739",
      "median_contrast": "5.1043478260869565217391304347826086956521739130435",
      "mean_absolute_contrast": "5.2194878845162399037635332531362777109468980924557",
      "minimum_contrast": "-10.095652173913043478260869565217391304347826086957",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "11.369565217391304347826086956521739130434782608696",
      "maximum_contrast_dates": [
        "2025-02-22"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 6,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 17,
      "contrast_below_minus_0_1_days": 6,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 527
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 28,
      "pair_count": 23,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "excluded_dates": [
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27"
      ],
      "excluded_date_reasons": {
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 4
      },
      "onsite_mean_of_daily_values": "8.8782608695652173913043478260869565217391304347826",
      "town_mean_of_daily_values": "5.4577676576731397147276164289396803574497336312083",
      "mean_contrast": "3.4204932118920776765767313971472761642893968035745",
      "median_contrast": "5.2304347826086956521739130434782608695652173913043",
      "mean_absolute_contrast": "5.2314572950678810792232342326860285272383571060317",
      "minimum_contrast": "-10.156521739130434782608695652173913043478260869565",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "11.121739130434782608695652173913043478260869565217",
      "maximum_contrast_dates": [
        "2025-02-22"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 6,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 17,
      "contrast_below_minus_0_1_days": 6,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 528
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 28,
      "pair_count": 23,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "excluded_dates": [
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27"
      ],
      "excluded_date_reasons": {
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 4
      },
      "onsite_mean_of_daily_values": "8.8782608695652173913043478260869565217391304347826",
      "town_mean_of_daily_values": "5.4832359511943632926619694105516411754597009795496",
      "mean_contrast": "3.3950249183708540986423784155353153462794294552329",
      "median_contrast": "5.1695652173913043478260869565217391304347826086957",
      "mean_absolute_contrast": "5.2274875408145729506788107922323423268602852723839",
      "minimum_contrast": "-10.536363636363636363636363636363636363636363636364",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "10.947826086956521739130434782608695652173913043478",
      "maximum_contrast_dates": [
        "2025-02-22"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 6,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 17,
      "contrast_below_minus_0_1_days": 6,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 528
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 28,
      "pair_count": 23,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "excluded_dates": [
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27"
      ],
      "excluded_date_reasons": {
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 4
      },
      "onsite_mean_of_daily_values": "20.065217391304347826086956521739130434782608695652",
      "town_mean_of_daily_values": "14.173943121739130434782608695652173913043478260870",
      "mean_contrast": "5.8912742695652173913043478260869565217391304347826",
      "median_contrast": "9.9989681",
      "mean_absolute_contrast": "12.565705434782608695652173913043478260869565217391",
      "minimum_contrast": "-22.6188316",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "28.3169727",
      "maximum_contrast_dates": [
        "2025-02-25"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 6,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 17,
      "contrast_below_minus_0_1_days": 6,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 527
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 28,
      "pair_count": 23,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "excluded_dates": [
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27"
      ],
      "excluded_date_reasons": {
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 4
      },
      "onsite_mean_of_daily_values": "20.065217391304347826086956521739130434782608695652",
      "town_mean_of_daily_values": "14.040194913043478260869565217391304347826086956522",
      "mean_contrast": "6.0250224782608695652173913043478260869565217391304",
      "median_contrast": "9.9989681",
      "mean_absolute_contrast": "12.699453643478260869565217391304347826086956521739",
      "minimum_contrast": "-22.6188316",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "26.874897",
      "maximum_contrast_dates": [
        "2025-02-25"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 6,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 17,
      "contrast_below_minus_0_1_days": 6,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 528
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 28,
      "pair_count": 23,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "excluded_dates": [
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27"
      ],
      "excluded_date_reasons": {
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 4
      },
      "onsite_mean_of_daily_values": "20.065217391304347826086956521739130434782608695652",
      "town_mean_of_daily_values": "13.872987856521739130434782608695652173913043478261",
      "mean_contrast": "6.1922295347826086956521739130434782608695652173913",
      "median_contrast": "9.9989681",
      "mean_absolute_contrast": "12.8666607",
      "minimum_contrast": "-22.6188316",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "26.874897",
      "maximum_contrast_dates": [
        "2025-02-25"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 6,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 17,
      "contrast_below_minus_0_1_days": 6,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 528
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 28,
      "pair_count": 23,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "excluded_dates": [
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27"
      ],
      "excluded_date_reasons": {
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 4
      },
      "onsite_mean_of_daily_values": "20.065217391304347826086956521739130434782608695652",
      "town_mean_of_daily_values": "14.178260869565217391304347826086956521739130434783",
      "mean_contrast": "5.8869565217391304347826086956521739130434782608696",
      "median_contrast": "10.0",
      "mean_absolute_contrast": "12.565217391304347826086956521739130434782608695652",
      "minimum_contrast": "-22.6",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "28.3",
      "maximum_contrast_dates": [
        "2025-02-25"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 6,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 17,
      "contrast_below_minus_0_1_days": 6,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 527
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 28,
      "pair_count": 23,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "excluded_dates": [
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27"
      ],
      "excluded_date_reasons": {
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 4
      },
      "onsite_mean_of_daily_values": "20.065217391304347826086956521739130434782608695652",
      "town_mean_of_daily_values": "14.043478260869565217391304347826086956521739130435",
      "mean_contrast": "6.0217391304347826086956521739130434782608695652174",
      "median_contrast": "10.0",
      "mean_absolute_contrast": "12.7",
      "minimum_contrast": "-22.6",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "26.9",
      "maximum_contrast_dates": [
        "2025-02-25"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 6,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 17,
      "contrast_below_minus_0_1_days": 6,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 528
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 28,
      "pair_count": 23,
      "dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "excluded_dates": [
        "2025-02-04",
        "2025-02-05",
        "2025-02-12",
        "2025-02-26",
        "2025-02-27"
      ],
      "excluded_date_reasons": {
        "2025-02-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-12": [
          "onsite_explicitly_missing"
        ],
        "2025-02-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-02-27": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 4
      },
      "onsite_mean_of_daily_values": "20.065217391304347826086956521739130434782608695652",
      "town_mean_of_daily_values": "13.878260869565217391304347826086956521739130434783",
      "mean_contrast": "6.1869565217391304347826086956521739130434782608696",
      "median_contrast": "10.0",
      "mean_absolute_contrast": "12.865217391304347826086956521739130434782608695652",
      "minimum_contrast": "-22.6",
      "minimum_contrast_dates": [
        "2025-02-11"
      ],
      "maximum_contrast": "26.9",
      "maximum_contrast_dates": [
        "2025-02-25"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 6,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 17,
      "contrast_below_minus_0_1_days": 6,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 528
    },
    {
      "period": "2025-03",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 28,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-17"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-17": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "4.9142857142857142857142857142857142857142857142857",
      "town_mean_of_daily_values": "2.9622014836309523809523809523809523809523809523810",
      "mean_contrast": "1.9520842306547619047619047619047619047619047619047",
      "median_contrast": "1.9227456291666666666666666666666666666666666666666",
      "mean_absolute_contrast": "2.1380324997023809523809523809523809523809523809524",
      "minimum_contrast": "-1.4444637291666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-03-18"
      ],
      "maximum_contrast": "4.6245748041666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-03-26"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 672
    },
    {
      "period": "2025-03",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 28,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-17"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-17": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "4.9142857142857142857142857142857142857142857142857",
      "town_mean_of_daily_values": "2.9504553822916666666666666666666666666666666666668",
      "mean_contrast": "1.963830331994047619047619047619047619047619047619",
      "median_contrast": "1.9578023000000000000000000000000000000000000000000",
      "mean_absolute_contrast": "2.1568152739583333333333333333333333333333333333333",
      "minimum_contrast": "-1.5749258166666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-03-18"
      ],
      "maximum_contrast": "4.5513841791666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-03-26"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 672
    },
    {
      "period": "2025-03",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 28,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-17"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-17": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "4.9142857142857142857142857142857142857142857142857",
      "town_mean_of_daily_values": "2.9574758157738095238095238095238095238095238095238",
      "mean_contrast": "1.9568098985119047619047619047619047619047619047620",
      "median_contrast": "2.0475997541666666666666666666666666666666666666666",
      "mean_absolute_contrast": "2.1561360047619047619047619047619047619047619047620",
      "minimum_contrast": "-1.5908286125",
      "minimum_contrast_dates": [
        "2025-03-18"
      ],
      "maximum_contrast": "4.5097691791666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-03-26"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 672
    },
    {
      "period": "2025-03",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 28,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-17"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-17": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "4.9142857142857142857142857142857142857142857142857",
      "town_mean_of_daily_values": "2.9627976190476190476190476190476190476190476190476",
      "mean_contrast": "1.9514880952380952380952380952380952380952380952381",
      "median_contrast": "1.9145833333333333333333333333333333333333333333334",
      "mean_absolute_contrast": "2.1366071428571428571428571428571428571428571428572",
      "minimum_contrast": "-1.4375",
      "minimum_contrast_dates": [
        "2025-03-18"
      ],
      "maximum_contrast": "4.6291666666666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-03-26"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 672
    },
    {
      "period": "2025-03",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 28,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-17"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-17": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "4.9142857142857142857142857142857142857142857142857",
      "town_mean_of_daily_values": "2.9510416666666666666666666666666666666666666666667",
      "mean_contrast": "1.9632440476190476190476190476190476190476190476191",
      "median_contrast": "1.9604166666666666666666666666666666666666666666666",
      "mean_absolute_contrast": "2.1552083333333333333333333333333333333333333333334",
      "minimum_contrast": "-1.5666666666666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-03-18"
      ],
      "maximum_contrast": "4.5541666666666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-03-26"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 672
    },
    {
      "period": "2025-03",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 28,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-17"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-17": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "4.9142857142857142857142857142857142857142857142857",
      "town_mean_of_daily_values": "2.9580357142857142857142857142857142857142857142856",
      "mean_contrast": "1.9562500000000000000000000000000000000000000000001",
      "median_contrast": "2.0520833333333333333333333333333333333333333333334",
      "mean_absolute_contrast": "2.1547619047619047619047619047619047619047619047619",
      "minimum_contrast": "-1.5833333333333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-03-18"
      ],
      "maximum_contrast": "4.5125",
      "maximum_contrast_dates": [
        "2025-03-26"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 672
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 24,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.6166666666666666666666666666666666666666666666667",
      "town_mean_of_daily_values": "4.9075158085391963109354413702239789196310935441367",
      "mean_contrast": "3.7091508581274703557312252964426877470355731225297",
      "median_contrast": "3.5653312282608695652173913043478260869565217391304",
      "mean_absolute_contrast": "3.8556671972579051383399209486166007905138339920948",
      "minimum_contrast": "-1.1864025391304347826086956521739130434782608695652",
      "minimum_contrast_dates": [
        "2025-03-04"
      ],
      "maximum_contrast": "9.2598425086956521739130434782608695652173913043478",
      "maximum_contrast_dates": [
        "2025-03-27"
      ],
      "positive_contrast_days": 22,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 22,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 550
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 24,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.6166666666666666666666666666666666666666666666667",
      "town_mean_of_daily_values": "4.9046368848896574440052700922266139657444005270092",
      "mean_contrast": "3.7120297817770092226613965744400527009222661396574",
      "median_contrast": "3.5894883347826086956521739130434782608695652173913",
      "mean_absolute_contrast": "3.8566886361248353096179183135704874835309617918313",
      "minimum_contrast": "-1.0642101565217391304347826086956521739130434782609",
      "minimum_contrast_dates": [
        "2025-03-04"
      ],
      "maximum_contrast": "9.2869235521739130434782608695652173913043478260870",
      "maximum_contrast_dates": [
        "2025-03-27"
      ],
      "positive_contrast_days": 22,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 22,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 549
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 24,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.6166666666666666666666666666666666666666666666667",
      "town_mean_of_daily_values": "4.9086744370886661647531212748604052951879038835558",
      "mean_contrast": "3.7079922295780005019135453918062613714787627831106",
      "median_contrast": "3.6216087739130434782608695652173913043478260869565",
      "mean_absolute_contrast": "3.851988634288145429449777275864232385971516406299",
      "minimum_contrast": "-0.9898448521739130434782608695652173913043478260870",
      "minimum_contrast_dates": [
        "2025-03-04"
      ],
      "maximum_contrast": "9.2807559",
      "maximum_contrast_dates": [
        "2025-03-27"
      ],
      "positive_contrast_days": 22,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 22,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 549
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 24,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.6166666666666666666666666666666666666666666666667",
      "town_mean_of_daily_values": "4.9071393280632411067193675889328063241106719367592",
      "mean_contrast": "3.7095273386034255599472990777338603425559947299078",
      "median_contrast": "3.5608695652173913043478260869565217391304347826087",
      "mean_absolute_contrast": "3.8559041501976284584980237154150197628458498023715",
      "minimum_contrast": "-1.1869565217391304347826086956521739130434782608696",
      "minimum_contrast_dates": [
        "2025-03-04"
      ],
      "maximum_contrast": "9.2608695652173913043478260869565217391304347826087",
      "maximum_contrast_dates": [
        "2025-03-27"
      ],
      "positive_contrast_days": 22,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 22,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 550
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 24,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.6166666666666666666666666666666666666666666666667",
      "town_mean_of_daily_values": "4.90427371541501976284584980237154150197628458498",
      "mean_contrast": "3.7123929512516469038208168642951251646903820816864",
      "median_contrast": "3.5847826086956521739130434782608695652173913043478",
      "mean_absolute_contrast": "3.8569581686429512516469038208168642951251646903821",
      "minimum_contrast": "-1.0652173913043478260869565217391304347826086956522",
      "minimum_contrast_dates": [
        "2025-03-04"
      ],
      "maximum_contrast": "9.2869565217391304347826086956521739130434782608696",
      "maximum_contrast_dates": [
        "2025-03-27"
      ],
      "positive_contrast_days": 22,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 22,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 549
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 24,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.6166666666666666666666666666666666666666666666667",
      "town_mean_of_daily_values": "4.9082411851433590564025346634042286216199259677521",
      "mean_contrast": "3.7084254815233076102641320032624380450467406989146",
      "median_contrast": "3.6173913043478260869565217391304347826086956521739",
      "mean_absolute_contrast": "3.8519037423928728276554363510885250015684798293494",
      "minimum_contrast": "-0.9869565217391304347826086956521739130434782608696",
      "minimum_contrast_dates": [
        "2025-03-04"
      ],
      "maximum_contrast": "9.2826086956521739130434782608695652173913043478261",
      "maximum_contrast_dates": [
        "2025-03-27"
      ],
      "positive_contrast_days": 22,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 22,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 549
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 24,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "22.470833333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "10.932996545833333333333333333333333333333333333333",
      "mean_contrast": "11.5378367875",
      "median_contrast": "9.11529375",
      "mean_absolute_contrast": "11.5378367875",
      "minimum_contrast": "2.4243279",
      "minimum_contrast_dates": [
        "2025-03-01"
      ],
      "maximum_contrast": "25.2546841",
      "maximum_contrast_dates": [
        "2025-03-27"
      ],
      "positive_contrast_days": 24,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 24,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 550
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 24,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "22.470833333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "10.932996545833333333333333333333333333333333333333",
      "mean_contrast": "11.5378367875",
      "median_contrast": "9.11529375",
      "mean_absolute_contrast": "11.5378367875",
      "minimum_contrast": "2.4243279",
      "minimum_contrast_dates": [
        "2025-03-01"
      ],
      "maximum_contrast": "25.2546841",
      "maximum_contrast_dates": [
        "2025-03-27"
      ],
      "positive_contrast_days": 24,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 24,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 549
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 24,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "22.470833333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "10.9587888875",
      "mean_contrast": "11.512044445833333333333333333333333333333333333333",
      "median_contrast": "9.11529375",
      "mean_absolute_contrast": "11.512044445833333333333333333333333333333333333333",
      "minimum_contrast": "2.4243279",
      "minimum_contrast_dates": [
        "2025-03-01"
      ],
      "maximum_contrast": "25.2546841",
      "maximum_contrast_dates": [
        "2025-03-27"
      ],
      "positive_contrast_days": 24,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 24,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 549
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 24,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "22.470833333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "10.925",
      "mean_contrast": "11.545833333333333333333333333333333333333333333333",
      "median_contrast": "9.1",
      "mean_absolute_contrast": "11.545833333333333333333333333333333333333333333333",
      "minimum_contrast": "2.4",
      "minimum_contrast_dates": [
        "2025-03-01"
      ],
      "maximum_contrast": "25.3",
      "maximum_contrast_dates": [
        "2025-03-27"
      ],
      "positive_contrast_days": 24,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 24,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 550
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 24,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "22.470833333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "10.925",
      "mean_contrast": "11.545833333333333333333333333333333333333333333333",
      "median_contrast": "9.1",
      "mean_absolute_contrast": "11.545833333333333333333333333333333333333333333333",
      "minimum_contrast": "2.4",
      "minimum_contrast_dates": [
        "2025-03-01"
      ],
      "maximum_contrast": "25.3",
      "maximum_contrast_dates": [
        "2025-03-27"
      ],
      "positive_contrast_days": 24,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 24,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 549
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 24,
      "dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "excluded_dates": [
        "2025-03-05",
        "2025-03-06",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-28"
      ],
      "excluded_date_reasons": {
        "2025-03-05": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-06": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-03-23": [
          "onsite_explicitly_missing"
        ],
        "2025-03-24": [
          "onsite_explicitly_missing"
        ],
        "2025-03-25": [
          "onsite_explicitly_missing"
        ],
        "2025-03-26": [
          "onsite_explicitly_missing"
        ],
        "2025-03-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "22.470833333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "10.95",
      "mean_contrast": "11.520833333333333333333333333333333333333333333333",
      "median_contrast": "9.1",
      "mean_absolute_contrast": "11.520833333333333333333333333333333333333333333333",
      "minimum_contrast": "2.4",
      "minimum_contrast_dates": [
        "2025-03-01"
      ],
      "maximum_contrast": "25.3",
      "maximum_contrast_dates": [
        "2025-03-27"
      ],
      "positive_contrast_days": 24,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 24,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 549
    },
    {
      "period": "2025-04",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 25,
      "dates": [
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21"
      ],
      "excluded_date_reasons": {
        "2025-04-17": [
          "onsite_explicitly_missing"
        ],
        "2025-04-18": [
          "onsite_explicitly_missing"
        ],
        "2025-04-19": [
          "onsite_explicitly_missing"
        ],
        "2025-04-20": [
          "onsite_explicitly_missing"
        ],
        "2025-04-21": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5
      },
      "onsite_mean_of_daily_values": "6.844",
      "town_mean_of_daily_values": "4.827664593047846889952153110047846889952153110048",
      "mean_contrast": "2.0163354069521531100478468899521531100478468899521",
      "median_contrast": "1.8554157416666666666666666666666666666666666666667",
      "mean_absolute_contrast": "2.3477552473460925039872408293460925039872408293460",
      "minimum_contrast": "-2.0039576090909090909090909090909090909090909090909",
      "minimum_contrast_dates": [
        "2025-04-22"
      ],
      "maximum_contrast": "9.3633361583333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-04-15"
      ],
      "positive_contrast_days": 21,
      "negative_contrast_days": 4,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 21,
      "contrast_below_minus_0_1_days": 4,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 593
    },
    {
      "period": "2025-04",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 25,
      "dates": [
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21"
      ],
      "excluded_date_reasons": {
        "2025-04-17": [
          "onsite_explicitly_missing"
        ],
        "2025-04-18": [
          "onsite_explicitly_missing"
        ],
        "2025-04-19": [
          "onsite_explicitly_missing"
        ],
        "2025-04-20": [
          "onsite_explicitly_missing"
        ],
        "2025-04-21": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5
      },
      "onsite_mean_of_daily_values": "6.844",
      "town_mean_of_daily_values": "4.8399971692631578947368421052631578947368421052632",
      "mean_contrast": "2.0040028307368421052631578947368421052631578947369",
      "median_contrast": "1.9258494416666666666666666666666666666666666666667",
      "mean_absolute_contrast": "2.3514980280701754385964912280701754385964912280702",
      "minimum_contrast": "-2.4142362",
      "minimum_contrast_dates": [
        "2025-04-22"
      ],
      "maximum_contrast": "9.3818947791666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-04-15"
      ],
      "positive_contrast_days": 21,
      "negative_contrast_days": 4,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 21,
      "contrast_below_minus_0_1_days": 3,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 593
    },
    {
      "period": "2025-04",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 25,
      "dates": [
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21"
      ],
      "excluded_date_reasons": {
        "2025-04-17": [
          "onsite_explicitly_missing"
        ],
        "2025-04-18": [
          "onsite_explicitly_missing"
        ],
        "2025-04-19": [
          "onsite_explicitly_missing"
        ],
        "2025-04-20": [
          "onsite_explicitly_missing"
        ],
        "2025-04-21": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5
      },
      "onsite_mean_of_daily_values": "6.844",
      "town_mean_of_daily_values": "4.8442930333397129186602870813397129186602870813396",
      "mean_contrast": "1.9997069666602870813397129186602870813397129186604",
      "median_contrast": "1.8549742791666666666666666666666666666666666666667",
      "mean_absolute_contrast": "2.3737096970239234449760765550239234449760765550240",
      "minimum_contrast": "-2.8281524545454545454545454545454545454545454545455",
      "minimum_contrast_dates": [
        "2025-04-22"
      ],
      "maximum_contrast": "9.3032082833333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-04-15"
      ],
      "positive_contrast_days": 20,
      "negative_contrast_days": 5,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 20,
      "contrast_below_minus_0_1_days": 3,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 593
    },
    {
      "period": "2025-04",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 25,
      "dates": [
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21"
      ],
      "excluded_date_reasons": {
        "2025-04-17": [
          "onsite_explicitly_missing"
        ],
        "2025-04-18": [
          "onsite_explicitly_missing"
        ],
        "2025-04-19": [
          "onsite_explicitly_missing"
        ],
        "2025-04-20": [
          "onsite_explicitly_missing"
        ],
        "2025-04-21": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5
      },
      "onsite_mean_of_daily_values": "6.844",
      "town_mean_of_daily_values": "4.8283724082934609250398724082934609250398724082932",
      "mean_contrast": "2.0156275917065390749601275917065390749601275917066",
      "median_contrast": "1.8541666666666666666666666666666666666666666666667",
      "mean_absolute_contrast": "2.3480215311004784688995215311004784688995215311005",
      "minimum_contrast": "-2.0090909090909090909090909090909090909090909090909",
      "minimum_contrast_dates": [
        "2025-04-22"
      ],
      "maximum_contrast": "9.3625",
      "maximum_contrast_dates": [
        "2025-04-15"
      ],
      "positive_contrast_days": 21,
      "negative_contrast_days": 4,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 21,
      "contrast_below_minus_0_1_days": 4,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 593
    },
    {
      "period": "2025-04",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 25,
      "dates": [
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21"
      ],
      "excluded_date_reasons": {
        "2025-04-17": [
          "onsite_explicitly_missing"
        ],
        "2025-04-18": [
          "onsite_explicitly_missing"
        ],
        "2025-04-19": [
          "onsite_explicitly_missing"
        ],
        "2025-04-20": [
          "onsite_explicitly_missing"
        ],
        "2025-04-21": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5
      },
      "onsite_mean_of_daily_values": "6.844",
      "town_mean_of_daily_values": "4.8407424242424242424242424242424242424242424242428",
      "mean_contrast": "2.0032575757575757575757575757575757575757575757576",
      "median_contrast": "1.925",
      "mean_absolute_contrast": "2.3520757575757575757575757575757575757575757575758",
      "minimum_contrast": "-2.4227272727272727272727272727272727272727272727273",
      "minimum_contrast_dates": [
        "2025-04-22"
      ],
      "maximum_contrast": "9.3791666666666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-04-15"
      ],
      "positive_contrast_days": 21,
      "negative_contrast_days": 4,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 21,
      "contrast_below_minus_0_1_days": 3,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 593
    },
    {
      "period": "2025-04",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 25,
      "dates": [
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21"
      ],
      "excluded_date_reasons": {
        "2025-04-17": [
          "onsite_explicitly_missing"
        ],
        "2025-04-18": [
          "onsite_explicitly_missing"
        ],
        "2025-04-19": [
          "onsite_explicitly_missing"
        ],
        "2025-04-20": [
          "onsite_explicitly_missing"
        ],
        "2025-04-21": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 5
      },
      "onsite_mean_of_daily_values": "6.844",
      "town_mean_of_daily_values": "4.8451212121212121212121212121212121212121212121212",
      "mean_contrast": "1.9988787878787878787878787878787878787878787878788",
      "median_contrast": "1.8583333333333333333333333333333333333333333333333",
      "mean_absolute_contrast": "2.3744545454545454545454545454545454545454545454546",
      "minimum_contrast": "-2.8363636363636363636363636363636363636363636363636",
      "minimum_contrast_dates": [
        "2025-04-22"
      ],
      "maximum_contrast": "9.3",
      "maximum_contrast_dates": [
        "2025-04-15"
      ],
      "positive_contrast_days": 20,
      "negative_contrast_days": 5,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 20,
      "contrast_below_minus_0_1_days": 3,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 593
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 28,
      "dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-01",
        "2025-04-02"
      ],
      "excluded_date_reasons": {
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.5071428571428571428571428571428571428571428571429",
      "town_mean_of_daily_values": "4.2597404405561829474872953133822699040090344438171",
      "mean_contrast": "4.2474024165866741953698475437605872388481084133257",
      "median_contrast": "3.2239482978260869565217391304347826086956521739130",
      "mean_absolute_contrast": "4.2474024165866741953698475437605872388481084133257",
      "minimum_contrast": "1.7497551818181818181818181818181818181818181818182",
      "minimum_contrast_dates": [
        "2025-04-23"
      ],
      "maximum_contrast": "10.980352556521739130434782608695652173913043478261",
      "maximum_contrast_dates": [
        "2025-04-28"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 643
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 28,
      "dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-01",
        "2025-04-02"
      ],
      "excluded_date_reasons": {
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.5071428571428571428571428571428571428571428571429",
      "town_mean_of_daily_values": "4.2605371965767927724449463579898362507058159232071",
      "mean_contrast": "4.2466056605660643704121964991530208921513269339357",
      "median_contrast": "3.1623176456521739130434782608695652173913043478261",
      "mean_absolute_contrast": "4.2466056605660643704121964991530208921513269339357",
      "minimum_contrast": "1.7542164565217391304347826086956521739130434782609",
      "minimum_contrast_dates": [
        "2025-04-17"
      ],
      "maximum_contrast": "11.069881995652173913043478260869565217391304347826",
      "maximum_contrast_dates": [
        "2025-04-28"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 643
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 28,
      "dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-01",
        "2025-04-02"
      ],
      "excluded_date_reasons": {
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.5071428571428571428571428571428571428571428571429",
      "town_mean_of_daily_values": "4.2604168945016939582156973461321287408243929983064",
      "mean_contrast": "4.2467259626411631846414455110107284020327498588364",
      "median_contrast": "3.1883306021739130434782608695652173913043478260870",
      "mean_absolute_contrast": "4.2467259626411631846414455110107284020327498588364",
      "minimum_contrast": "1.7704420217391304347826086956521739130434782608696",
      "minimum_contrast_dates": [
        "2025-04-17"
      ],
      "maximum_contrast": "11.118714126086956521739130434782608695652173913044",
      "maximum_contrast_dates": [
        "2025-04-28"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 643
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 28,
      "dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-01",
        "2025-04-02"
      ],
      "excluded_date_reasons": {
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.5071428571428571428571428571428571428571428571429",
      "town_mean_of_daily_values": "4.2584627329192546583850931677018633540372670807454",
      "mean_contrast": "4.2486801242236024844720496894409937888198757763979",
      "median_contrast": "3.2282608695652173913043478260869565217391304347826",
      "mean_absolute_contrast": "4.2486801242236024844720496894409937888198757763979",
      "minimum_contrast": "1.75",
      "minimum_contrast_dates": [
        "2025-04-23"
      ],
      "maximum_contrast": "10.986956521739130434782608695652173913043478260870",
      "maximum_contrast_dates": [
        "2025-04-28"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 643
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 28,
      "dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-01",
        "2025-04-02"
      ],
      "excluded_date_reasons": {
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.5071428571428571428571428571428571428571428571429",
      "town_mean_of_daily_values": "4.2592320722755505364201016374929418407679277244493",
      "mean_contrast": "4.2479107848673066064370412196499153020892151326936",
      "median_contrast": "3.1673913043478260869565217391304347826086956521740",
      "mean_absolute_contrast": "4.2479107848673066064370412196499153020892151326936",
      "minimum_contrast": "1.7608695652173913043478260869565217391304347826087",
      "minimum_contrast_dates": [
        "2025-04-17"
      ],
      "maximum_contrast": "11.078260869565217391304347826086956521739130434783",
      "maximum_contrast_dates": [
        "2025-04-28"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 643
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 28,
      "dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-01",
        "2025-04-02"
      ],
      "excluded_date_reasons": {
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.5071428571428571428571428571428571428571428571429",
      "town_mean_of_daily_values": "4.2590556182947487295313382269904009034443817052507",
      "mean_contrast": "4.2480872388481084133258046301524562394127611518918",
      "median_contrast": "3.1934782608695652173913043478260869565217391304348",
      "mean_absolute_contrast": "4.2480872388481084133258046301524562394127611518918",
      "minimum_contrast": "1.7739130434782608695652173913043478260869565217391",
      "minimum_contrast_dates": [
        "2025-04-17"
      ],
      "maximum_contrast": "11.126086956521739130434782608695652173913043478261",
      "maximum_contrast_dates": [
        "2025-04-28"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 643
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 28,
      "dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-01",
        "2025-04-02"
      ],
      "excluded_date_reasons": {
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "19.221428571428571428571428571428571428571428571429",
      "town_mean_of_daily_values": "9.2612089285714285714285714285714285714285714285714",
      "mean_contrast": "9.9602196428571428571428571428571428571428571428571",
      "median_contrast": "7.98926845",
      "mean_absolute_contrast": "10.05401745",
      "minimum_contrast": "-1.3131693",
      "minimum_contrast_dates": [
        "2025-04-04"
      ],
      "maximum_contrast": "29.550173",
      "maximum_contrast_dates": [
        "2025-04-06"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 27,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 643
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 28,
      "dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-01",
        "2025-04-02"
      ],
      "excluded_date_reasons": {
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "19.221428571428571428571428571428571428571428571429",
      "town_mean_of_daily_values": "9.2314695607142857142857142857142857142857142857143",
      "mean_contrast": "9.9899590107142857142857142857142857142857142857143",
      "median_contrast": "7.98926845",
      "mean_absolute_contrast": "10.083756817857142857142857142857142857142857142857",
      "minimum_contrast": "-1.3131693",
      "minimum_contrast_dates": [
        "2025-04-04"
      ],
      "maximum_contrast": "29.550173",
      "maximum_contrast_dates": [
        "2025-04-06"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 27,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 643
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 28,
      "dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-01",
        "2025-04-02"
      ],
      "excluded_date_reasons": {
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "19.221428571428571428571428571428571428571428571429",
      "town_mean_of_daily_values": "9.2314695607142857142857142857142857142857142857143",
      "mean_contrast": "9.9899590107142857142857142857142857142857142857143",
      "median_contrast": "7.98926845",
      "mean_absolute_contrast": "10.083756817857142857142857142857142857142857142857",
      "minimum_contrast": "-1.3131693",
      "minimum_contrast_dates": [
        "2025-04-04"
      ],
      "maximum_contrast": "29.550173",
      "maximum_contrast_dates": [
        "2025-04-06"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 27,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 643
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 28,
      "dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-01",
        "2025-04-02"
      ],
      "excluded_date_reasons": {
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "19.221428571428571428571428571428571428571428571429",
      "town_mean_of_daily_values": "9.2607142857142857142857142857142857142857142857143",
      "mean_contrast": "9.9607142857142857142857142857142857142857142857143",
      "median_contrast": "8.0",
      "mean_absolute_contrast": "10.053571428571428571428571428571428571428571428571",
      "minimum_contrast": "-1.3",
      "minimum_contrast_dates": [
        "2025-04-04"
      ],
      "maximum_contrast": "29.6",
      "maximum_contrast_dates": [
        "2025-04-06"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 27,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 643
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 28,
      "dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-01",
        "2025-04-02"
      ],
      "excluded_date_reasons": {
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "19.221428571428571428571428571428571428571428571429",
      "town_mean_of_daily_values": "9.2321428571428571428571428571428571428571428571429",
      "mean_contrast": "9.9892857142857142857142857142857142857142857142857",
      "median_contrast": "8.0",
      "mean_absolute_contrast": "10.082142857142857142857142857142857142857142857143",
      "minimum_contrast": "-1.3",
      "minimum_contrast_dates": [
        "2025-04-04"
      ],
      "maximum_contrast": "29.6",
      "maximum_contrast_dates": [
        "2025-04-06"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 27,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 643
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 28,
      "dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "excluded_dates": [
        "2025-04-01",
        "2025-04-02"
      ],
      "excluded_date_reasons": {
        "2025-04-01": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-04-02": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "19.221428571428571428571428571428571428571428571429",
      "town_mean_of_daily_values": "9.2321428571428571428571428571428571428571428571429",
      "mean_contrast": "9.9892857142857142857142857142857142857142857142857",
      "median_contrast": "8.0",
      "mean_absolute_contrast": "10.082142857142857142857142857142857142857142857143",
      "minimum_contrast": "-1.3",
      "minimum_contrast_dates": [
        "2025-04-04"
      ],
      "maximum_contrast": "29.6",
      "maximum_contrast_dates": [
        "2025-04-06"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 27,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 643
    },
    {
      "period": "2025-05",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "5.9741935483870967741935483870967741935483870967742",
      "town_mean_of_daily_values": "4.2830955862903225806451612903225806451612903225813",
      "mean_contrast": "1.6910979620967741935483870967741935483870967741935",
      "median_contrast": "1.8458753291666666666666666666666666666666666666667",
      "mean_absolute_contrast": "1.7239370567204301075268817204301075268817204301075",
      "minimum_contrast": "-0.5090059666666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-05-30"
      ],
      "maximum_contrast": "3.1047885666666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-05-02"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 744
    },
    {
      "period": "2025-05",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "5.9741935483870967741935483870967741935483870967742",
      "town_mean_of_daily_values": "4.2802097447580645161290322580645161290322580645158",
      "mean_contrast": "1.6939838036290322580645161290322580645161290322581",
      "median_contrast": "1.7967884625",
      "mean_absolute_contrast": "1.7165880807795698924731182795698924731182795698925",
      "minimum_contrast": "-0.3503662958333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-05-30"
      ],
      "maximum_contrast": "3.3660057791666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-05-02"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 744
    },
    {
      "period": "2025-05",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "5.9741935483870967741935483870967741935483870967742",
      "town_mean_of_daily_values": "4.2776365538978494623655913978494623655913978494623",
      "mean_contrast": "1.6965569944892473118279569892473118279569892473119",
      "median_contrast": "1.6820884916666666666666666666666666666666666666667",
      "mean_absolute_contrast": "1.7099979969086021505376344086021505376344086021506",
      "minimum_contrast": "-0.2083355375",
      "minimum_contrast_dates": [
        "2025-05-30"
      ],
      "maximum_contrast": "3.5638576916666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-05-02"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 744
    },
    {
      "period": "2025-05",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "5.9741935483870967741935483870967741935483870967742",
      "town_mean_of_daily_values": "4.2826612903225806451612903225806451612903225806452",
      "mean_contrast": "1.6915322580645161290322580645161290322580645161290",
      "median_contrast": "1.85",
      "mean_absolute_contrast": "1.7243279569892473118279569892473118279569892473118",
      "minimum_contrast": "-0.5083333333333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-05-30"
      ],
      "maximum_contrast": "3.1",
      "maximum_contrast_dates": [
        "2025-05-02"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 744
    },
    {
      "period": "2025-05",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "5.9741935483870967741935483870967741935483870967742",
      "town_mean_of_daily_values": "4.2797043010752688172043010752688172043010752688174",
      "mean_contrast": "1.6944892473118279569892473118279569892473118279569",
      "median_contrast": "1.7916666666666666666666666666666666666666666666667",
      "mean_absolute_contrast": "1.7170698924731182795698924731182795698924731182795",
      "minimum_contrast": "-0.35",
      "minimum_contrast_dates": [
        "2025-05-30"
      ],
      "maximum_contrast": "3.3625",
      "maximum_contrast_dates": [
        "2025-05-02"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 744
    },
    {
      "period": "2025-05",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "5.9741935483870967741935483870967741935483870967742",
      "town_mean_of_daily_values": "4.2770161290322580645161290322580645161290322580645",
      "mean_contrast": "1.6971774193548387096774193548387096774193548387096",
      "median_contrast": "1.6833333333333333333333333333333333333333333333333",
      "mean_absolute_contrast": "1.7106182795698924731182795698924731182795698924731",
      "minimum_contrast": "-0.2083333333333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-05-30"
      ],
      "maximum_contrast": "3.5625",
      "maximum_contrast_dates": [
        "2025-05-02"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 744
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "9.7451612903225806451612903225806451612903225806452",
      "town_mean_of_daily_values": "3.7224721613923243656763993369883972969526966721916",
      "mean_contrast": "6.0226891289302562794848909855922478643376259084532",
      "median_contrast": "6.3724409434782608695652173913043478260869565217391",
      "mean_absolute_contrast": "6.0226891289302562794848909855922478643376259084532",
      "minimum_contrast": "2.2702684782608695652173913043478260869565217391304",
      "minimum_contrast_dates": [
        "2025-05-18"
      ],
      "maximum_contrast": "9.4280667782608695652173913043478260869565217391304",
      "maximum_contrast_dates": [
        "2025-05-10"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 712
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "9.7451612903225806451612903225806451612903225806452",
      "town_mean_of_daily_values": "3.7196299893663139104934336350886140507458880530410",
      "mean_contrast": "6.0255313009562667346678566874920311105444345276042",
      "median_contrast": "6.5610610652173913043478260869565217391304347826087",
      "mean_absolute_contrast": "6.0255313009562667346678566874920311105444345276042",
      "minimum_contrast": "2.2117722173913043478260869565217391304347826086957",
      "minimum_contrast_dates": [
        "2025-05-18"
      ],
      "maximum_contrast": "9.5741715173913043478260869565217391304347826086957",
      "maximum_contrast_dates": [
        "2025-05-10"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 712
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "9.7451612903225806451612903225806451612903225806452",
      "town_mean_of_daily_values": "3.7159853618385821751880657911513451485400994517403",
      "mean_contrast": "6.0291759284839984699732245314293000127502231289048",
      "median_contrast": "6.4827913652173913043478260869565217391304347826087",
      "mean_absolute_contrast": "6.0291759284839984699732245314293000127502231289048",
      "minimum_contrast": "2.1457073043478260869565217391304347826086956521739",
      "minimum_contrast_dates": [
        "2025-05-18"
      ],
      "maximum_contrast": "9.6998232956521739130434782608695652173913043478261",
      "maximum_contrast_dates": [
        "2025-05-10"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 712
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "9.7451612903225806451612903225806451612903225806452",
      "town_mean_of_daily_values": "3.7208657401504526329210761188320795613923243656765",
      "mean_contrast": "6.0242955501721280122402142037485655998979982149684",
      "median_contrast": "6.3782608695652173913043478260869565217391304347826",
      "mean_absolute_contrast": "6.0242955501721280122402142037485655998979982149684",
      "minimum_contrast": "2.2782608695652173913043478260869565217391304347826",
      "minimum_contrast_dates": [
        "2025-05-18"
      ],
      "maximum_contrast": "9.4260869565217391304347826086956521739130434782609",
      "maximum_contrast_dates": [
        "2025-05-10"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 712
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "9.7451612903225806451612903225806451612903225806452",
      "town_mean_of_daily_values": "3.7180160652811424199923498661226571465000637511155",
      "mean_contrast": "6.0271452250414382251689404564579880147902588295294",
      "median_contrast": "6.5652173913043478260869565217391304347826086956522",
      "mean_absolute_contrast": "6.0271452250414382251689404564579880147902588295294",
      "minimum_contrast": "2.2173913043478260869565217391304347826086956521739",
      "minimum_contrast_dates": [
        "2025-05-18"
      ],
      "maximum_contrast": "9.5695652173913043478260869565217391304347826086957",
      "maximum_contrast_dates": [
        "2025-05-10"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 712
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "9.7451612903225806451612903225806451612903225806452",
      "town_mean_of_daily_values": "3.7144332525819201836032130562284839984699732245313",
      "mean_contrast": "6.0307280377406604615580772663521611628203493561142",
      "median_contrast": "6.4869565217391304347826086956521739130434782608696",
      "mean_absolute_contrast": "6.0307280377406604615580772663521611628203493561142",
      "minimum_contrast": "2.1521739130434782608695652173913043478260869565217",
      "minimum_contrast_dates": [
        "2025-05-18"
      ],
      "maximum_contrast": "9.6913043478260869565217391304347826086956521739130",
      "maximum_contrast_dates": [
        "2025-05-10"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 712
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "23.235483870967741935483870967741935483870967741935",
      "town_mean_of_daily_values": "7.5101900419354838709677419354838709677419354838710",
      "mean_contrast": "15.725293829032258064516129032258064516129032258065",
      "median_contrast": "14.2672886",
      "mean_absolute_contrast": "15.725293829032258064516129032258064516129032258065",
      "minimum_contrast": "4.9724641",
      "minimum_contrast_dates": [
        "2025-05-18"
      ],
      "maximum_contrast": "35.0544191",
      "maximum_contrast_dates": [
        "2025-05-15"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 712
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "23.235483870967741935483870967741935483870967741935",
      "town_mean_of_daily_values": "7.4619882645161290322580645161290322580645161290323",
      "mean_contrast": "15.773495606451612903225806451612903225806451612903",
      "median_contrast": "14.2672886",
      "mean_absolute_contrast": "15.773495606451612903225806451612903225806451612903",
      "minimum_contrast": "4.9724641",
      "minimum_contrast_dates": [
        "2025-05-18"
      ],
      "maximum_contrast": "35.0544191",
      "maximum_contrast_dates": [
        "2025-05-15"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 712
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "23.235483870967741935483870967741935483870967741935",
      "town_mean_of_daily_values": "7.4619882645161290322580645161290322580645161290323",
      "mean_contrast": "15.773495606451612903225806451612903225806451612903",
      "median_contrast": "14.2672886",
      "mean_absolute_contrast": "15.773495606451612903225806451612903225806451612903",
      "minimum_contrast": "4.9724641",
      "minimum_contrast_dates": [
        "2025-05-18"
      ],
      "maximum_contrast": "35.0544191",
      "maximum_contrast_dates": [
        "2025-05-15"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 712
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "23.235483870967741935483870967741935483870967741935",
      "town_mean_of_daily_values": "7.5",
      "mean_contrast": "15.735483870967741935483870967741935483870967741935",
      "median_contrast": "14.3",
      "mean_absolute_contrast": "15.735483870967741935483870967741935483870967741935",
      "minimum_contrast": "5.0",
      "minimum_contrast_dates": [
        "2025-05-18"
      ],
      "maximum_contrast": "35.1",
      "maximum_contrast_dates": [
        "2025-05-15"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 712
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "23.235483870967741935483870967741935483870967741935",
      "town_mean_of_daily_values": "7.4516129032258064516129032258064516129032258064516",
      "mean_contrast": "15.783870967741935483870967741935483870967741935484",
      "median_contrast": "14.3",
      "mean_absolute_contrast": "15.783870967741935483870967741935483870967741935484",
      "minimum_contrast": "5.0",
      "minimum_contrast_dates": [
        "2025-05-18"
      ],
      "maximum_contrast": "35.1",
      "maximum_contrast_dates": [
        "2025-05-15"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 712
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "23.235483870967741935483870967741935483870967741935",
      "town_mean_of_daily_values": "7.4516129032258064516129032258064516129032258064516",
      "mean_contrast": "15.783870967741935483870967741935483870967741935484",
      "median_contrast": "14.3",
      "mean_absolute_contrast": "15.783870967741935483870967741935483870967741935484",
      "minimum_contrast": "5.0",
      "minimum_contrast_dates": [
        "2025-05-18"
      ],
      "maximum_contrast": "35.1",
      "maximum_contrast_dates": [
        "2025-05-15"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 712
    },
    {
      "period": "2025-06",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.1222222222222222222222222222222222222222222222222",
      "town_mean_of_daily_values": "5.4742459538580246913580246913580246913580246913581",
      "mean_contrast": "2.6479762683641975308641975308641975308641975308642",
      "median_contrast": "2.9130653291666666666666666666666666666666666666667",
      "mean_absolute_contrast": "2.6479762683641975308641975308641975308641975308642",
      "minimum_contrast": "0.000656720833333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-06-24"
      ],
      "maximum_contrast": "6.76632055",
      "maximum_contrast_dates": [
        "2025-06-10"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 648
    },
    {
      "period": "2025-06",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.1222222222222222222222222222222222222222222222222",
      "town_mean_of_daily_values": "5.4830188270061728395061728395061728395061728395063",
      "mean_contrast": "2.639203395216049382716049382716049382716049382716",
      "median_contrast": "2.8479499958333333333333333333333333333333333333333",
      "mean_absolute_contrast": "2.6464720862654320987654320987654320987654320987654",
      "minimum_contrast": "-0.098127329166666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-06-24"
      ],
      "maximum_contrast": "6.712220425",
      "maximum_contrast_dates": [
        "2025-06-10"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 648
    },
    {
      "period": "2025-06",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.1222222222222222222222222222222222222222222222222",
      "town_mean_of_daily_values": "5.4947988117283950617283950617283950617283950617281",
      "mean_contrast": "2.6274234104938271604938271604938271604938271604939",
      "median_contrast": "2.8288775833333333333333333333333333333333333333333",
      "mean_absolute_contrast": "2.6396557290123456790123456790123456790123456790124",
      "minimum_contrast": "-0.1651363",
      "minimum_contrast_dates": [
        "2025-06-24"
      ],
      "maximum_contrast": "6.6177494666666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-06-10"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 648
    },
    {
      "period": "2025-06",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.1222222222222222222222222222222222222222222222222",
      "town_mean_of_daily_values": "5.4743827160493827160493827160493827160493827160496",
      "mean_contrast": "2.6478395061728395061728395061728395061728395061728",
      "median_contrast": "2.9125",
      "mean_absolute_contrast": "2.6487654320987654320987654320987654320987654320987",
      "minimum_contrast": "-0.0125",
      "minimum_contrast_dates": [
        "2025-06-24"
      ],
      "maximum_contrast": "6.7666666666666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-06-10"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 648
    },
    {
      "period": "2025-06",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.1222222222222222222222222222222222222222222222222",
      "town_mean_of_daily_values": "5.4833333333333333333333333333333333333333333333333",
      "mean_contrast": "2.6388888888888888888888888888888888888888888888888",
      "median_contrast": "2.8458333333333333333333333333333333333333333333333",
      "mean_absolute_contrast": "2.6469135802469135802469135802469135802469135802468",
      "minimum_contrast": "-0.108333333333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-06-24"
      ],
      "maximum_contrast": "6.7125",
      "maximum_contrast_dates": [
        "2025-06-10"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 648
    },
    {
      "period": "2025-06",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 2
      },
      "onsite_mean_of_daily_values": "8.1222222222222222222222222222222222222222222222222",
      "town_mean_of_daily_values": "5.4950617283950617283950617283950617283950617283941",
      "mean_contrast": "2.6271604938271604938271604938271604938271604938273",
      "median_contrast": "2.8291666666666666666666666666666666666666666666667",
      "mean_absolute_contrast": "2.6401234567901234567901234567901234567901234567902",
      "minimum_contrast": "-0.175",
      "minimum_contrast_dates": [
        "2025-06-24"
      ],
      "maximum_contrast": "6.6166666666666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-06-10"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 648
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 26,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "10.761538461538461538461538461538461538461538461538",
      "town_mean_of_daily_values": "4.32713134464882943143812709030100334448160535117",
      "mean_contrast": "6.4344071168896321070234113712374581939799331103685",
      "median_contrast": "5.3424592173913043478260869565217391304347826086955",
      "mean_absolute_contrast": "6.4344071168896321070234113712374581939799331103685",
      "minimum_contrast": "3.2787486521739130434782608695652173913043478260870",
      "minimum_contrast_dates": [
        "2025-06-30"
      ],
      "maximum_contrast": "13.089745434782608695652173913043478260869565217391",
      "maximum_contrast_dates": [
        "2025-06-06"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 598
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 26,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "10.761538461538461538461538461538461538461538461538",
      "town_mean_of_daily_values": "4.324796908786865308604439039221647917300091213135",
      "mean_contrast": "6.4367415527515962298570994223168136211614472484031",
      "median_contrast": "5.248158913043478260869565217391304347826086956522",
      "mean_absolute_contrast": "6.4367415527515962298570994223168136211614472484031",
      "minimum_contrast": "3.2051336086956521739130434782608695652173913043478",
      "minimum_contrast_dates": [
        "2025-06-26"
      ],
      "maximum_contrast": "13.169333826086956521739130434782608695652173913044",
      "maximum_contrast_dates": [
        "2025-06-06"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 597
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 26,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "10.761538461538461538461538461538461538461538461538",
      "town_mean_of_daily_values": "4.3212930534356947400425661295226512617816965643054",
      "mean_contrast": "6.4402454081027667984189723320158102766798418972331",
      "median_contrast": "5.2815688260869565217391304347826086956521739130435",
      "mean_absolute_contrast": "6.4402454081027667984189723320158102766798418972331",
      "minimum_contrast": "3.1539304782608695652173913043478260869565217391304",
      "minimum_contrast_dates": [
        "2025-06-26"
      ],
      "maximum_contrast": "13.340990590909090909090909090909090909090909090909",
      "maximum_contrast_dates": [
        "2025-06-06"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 596
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 26,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "10.761538461538461538461538461538461538461538461538",
      "town_mean_of_daily_values": "4.3259197324414715719063545150501672240802675585285",
      "mean_contrast": "6.4356187290969899665551839464882943143812709030096",
      "median_contrast": "5.341304347826086956521739130434782608695652173913",
      "mean_absolute_contrast": "6.4356187290969899665551839464882943143812709030096",
      "minimum_contrast": "3.2826086956521739130434782608695652173913043478261",
      "minimum_contrast_dates": [
        "2025-06-30"
      ],
      "maximum_contrast": "13.1",
      "maximum_contrast_dates": [
        "2025-06-06"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 598
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 26,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "10.761538461538461538461538461538461538461538461538",
      "town_mean_of_daily_values": "4.3234949832775919732441471571906354515050167224081",
      "mean_contrast": "6.4380434782608695652173913043478260869565217391308",
      "median_contrast": "5.2456521739130434782608695652173913043478260869565",
      "mean_absolute_contrast": "6.4380434782608695652173913043478260869565217391308",
      "minimum_contrast": "3.2086956521739130434782608695652173913043478260870",
      "minimum_contrast_dates": [
        "2025-06-26"
      ],
      "maximum_contrast": "13.182608695652173913043478260869565217391304347826",
      "maximum_contrast_dates": [
        "2025-06-06"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 597
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 26,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "10.761538461538461538461538461538461538461538461538",
      "town_mean_of_daily_values": "4.3200440863484341745211310428701733049559136515658",
      "mean_contrast": "6.4414943751900273639404074186682882335056248099727",
      "median_contrast": "5.2782608695652173913043478260869565217391304347825",
      "mean_absolute_contrast": "6.4414943751900273639404074186682882335056248099727",
      "minimum_contrast": "3.1608695652173913043478260869565217391304347826087",
      "minimum_contrast_dates": [
        "2025-06-26"
      ],
      "maximum_contrast": "13.354545454545454545454545454545454545454545454546",
      "maximum_contrast_dates": [
        "2025-06-06"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 596
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 26,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "21.623076923076923076923076923076923076923076923077",
      "town_mean_of_daily_values": "8.2853750769230769230769230769230769230769230769231",
      "mean_contrast": "13.337701846153846153846153846153846153846153846154",
      "median_contrast": "12.292416",
      "mean_absolute_contrast": "13.337701846153846153846153846153846153846153846154",
      "minimum_contrast": "1.369516",
      "minimum_contrast_dates": [
        "2025-06-29"
      ],
      "maximum_contrast": "35.676133",
      "maximum_contrast_dates": [
        "2025-06-11"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 598
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 26,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "21.623076923076923076923076923076923076923076923077",
      "town_mean_of_daily_values": "8.2435148076923076923076923076923076923076923076923",
      "mean_contrast": "13.379562115384615384615384615384615384615384615385",
      "median_contrast": "12.292416",
      "mean_absolute_contrast": "13.379562115384615384615384615384615384615384615385",
      "minimum_contrast": "1.369516",
      "minimum_contrast_dates": [
        "2025-06-29"
      ],
      "maximum_contrast": "35.676133",
      "maximum_contrast_dates": [
        "2025-06-11"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 597
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 26,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "21.623076923076923076923076923076923076923076923077",
      "town_mean_of_daily_values": "8.1981665769230769230769230769230769230769230769231",
      "mean_contrast": "13.424910346153846153846153846153846153846153846154",
      "median_contrast": "12.292416",
      "mean_absolute_contrast": "13.424910346153846153846153846153846153846153846154",
      "minimum_contrast": "1.369516",
      "minimum_contrast_dates": [
        "2025-06-29"
      ],
      "maximum_contrast": "35.676133",
      "maximum_contrast_dates": [
        "2025-06-11"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 596
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 26,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "21.623076923076923076923076923076923076923076923077",
      "town_mean_of_daily_values": "8.2730769230769230769230769230769230769230769230769",
      "mean_contrast": "13.35",
      "median_contrast": "12.3",
      "mean_absolute_contrast": "13.35",
      "minimum_contrast": "1.4",
      "minimum_contrast_dates": [
        "2025-06-29"
      ],
      "maximum_contrast": "35.7",
      "maximum_contrast_dates": [
        "2025-06-11"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 598
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 26,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "21.623076923076923076923076923076923076923076923077",
      "town_mean_of_daily_values": "8.2307692307692307692307692307692307692307692307692",
      "mean_contrast": "13.392307692307692307692307692307692307692307692308",
      "median_contrast": "12.3",
      "mean_absolute_contrast": "13.392307692307692307692307692307692307692307692308",
      "minimum_contrast": "1.4",
      "minimum_contrast_dates": [
        "2025-06-29"
      ],
      "maximum_contrast": "35.7",
      "maximum_contrast_dates": [
        "2025-06-11"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 597
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 26,
      "dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "excluded_dates": [
        "2025-06-05",
        "2025-06-07",
        "2025-06-08",
        "2025-06-09"
      ],
      "excluded_date_reasons": {
        "2025-06-05": [
          "onsite_explicitly_missing"
        ],
        "2025-06-07": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-08": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-06-09": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1,
        "town_fewer_than_18_numeric_hours": 3
      },
      "onsite_mean_of_daily_values": "21.623076923076923076923076923076923076923076923077",
      "town_mean_of_daily_values": "8.1846153846153846153846153846153846153846153846154",
      "mean_contrast": "13.438461538461538461538461538461538461538461538462",
      "median_contrast": "12.3",
      "mean_absolute_contrast": "13.438461538461538461538461538461538461538461538462",
      "minimum_contrast": "1.4",
      "minimum_contrast_dates": [
        "2025-06-29"
      ],
      "maximum_contrast": "35.7",
      "maximum_contrast_dates": [
        "2025-06-11"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 596
    },
    {
      "period": "2025-07",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "8.7548387096774193548387096774193548387096774193548",
      "town_mean_of_daily_values": "6.0645161946204403971806348716365694294386993877661",
      "mean_contrast": "2.6903225150569789576580748057827854092709780315892",
      "median_contrast": "2.6826819125",
      "mean_absolute_contrast": "2.6903225150569789576580748057827854092709780315892",
      "minimum_contrast": "0.21895015",
      "minimum_contrast_dates": [
        "2025-07-10"
      ],
      "maximum_contrast": "5.3998178333333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-07-12"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 737
    },
    {
      "period": "2025-07",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "8.7548387096774193548387096774193548387096774193548",
      "town_mean_of_daily_values": "6.0624665901663065287853063744405000771724031486335",
      "mean_contrast": "2.6923721195111128260534033029788547615372742707208",
      "median_contrast": "2.6921288125",
      "mean_absolute_contrast": "2.6923721195111128260534033029788547615372742707208",
      "minimum_contrast": "0.2581619",
      "minimum_contrast_dates": [
        "2025-07-10"
      ],
      "maximum_contrast": "5.2840019958333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-07-12"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 737
    },
    {
      "period": "2025-07",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "8.7548387096774193548387096774193548387096774193548",
      "town_mean_of_daily_values": "6.0597675895990893656428461182281216237073622472603",
      "mean_contrast": "2.6950711200783299891958635591912332150023151720945",
      "median_contrast": "2.7021953416666666666666666666666666666666666666667",
      "mean_absolute_contrast": "2.6950711200783299891958635591912332150023151720945",
      "minimum_contrast": "0.2952540291666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-07-10"
      ],
      "maximum_contrast": "5.1930500375",
      "maximum_contrast_dates": [
        "2025-07-12"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 737
    },
    {
      "period": "2025-07",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "8.7548387096774193548387096774193548387096774193548",
      "town_mean_of_daily_values": "6.0647830169264804239337346298297062303853475330558",
      "mean_contrast": "2.6900556927509389309049750475896486083243298862993",
      "median_contrast": "2.6791666666666666666666666666666666666666666666667",
      "mean_absolute_contrast": "2.6900556927509389309049750475896486083243298862993",
      "minimum_contrast": "0.2166666666666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-07-10"
      ],
      "maximum_contrast": "5.4083333333333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-07-12"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 737
    },
    {
      "period": "2025-07",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "8.7548387096774193548387096774193548387096774193548",
      "town_mean_of_daily_values": "6.0627636723774244996655862530225857899881668981839",
      "mean_contrast": "2.692075037299994855173123424396769048721510521171",
      "median_contrast": "2.6875",
      "mean_absolute_contrast": "2.692075037299994855173123424396769048721510521171",
      "minimum_contrast": "0.2583333333333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-07-10"
      ],
      "maximum_contrast": "5.2916666666666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-07-12"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 737
    },
    {
      "period": "2025-07",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "8.7548387096774193548387096774193548387096774193548",
      "town_mean_of_daily_values": "6.0600600658537840201677213561763646653290116787577",
      "mean_contrast": "2.6947786438236353346709883212429901733806657405977",
      "median_contrast": "2.7",
      "mean_absolute_contrast": "2.6947786438236353346709883212429901733806657405977",
      "minimum_contrast": "0.2958333333333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-07-10"
      ],
      "maximum_contrast": "5.2",
      "maximum_contrast_dates": [
        "2025-07-12"
      ],
      "positive_contrast_days": 31,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 31,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 737
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 22,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "excluded_dates": [
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31"
      ],
      "excluded_date_reasons": {
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 8,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "6.2727272727272727272727272727272727272727272727273",
      "town_mean_of_daily_values": "4.9555566349173553719008264462809917355371900826445",
      "mean_contrast": "1.3171706378099173553719008264462809917355371900826",
      "median_contrast": "0.82187960652173913043478260869565217391304347826085",
      "mean_absolute_contrast": "1.5367110741735537190082644628099173553719008264462",
      "minimum_contrast": "-1.9140697869565217391304347826086956521739130434783",
      "minimum_contrast_dates": [
        "2025-07-25"
      ],
      "maximum_contrast": "5.2003728181818181818181818181818181818181818181818",
      "maximum_contrast_dates": [
        "2025-07-01"
      ],
      "positive_contrast_days": 19,
      "negative_contrast_days": 3,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 18,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 504
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 22,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "excluded_dates": [
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31"
      ],
      "excluded_date_reasons": {
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 8,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "6.2727272727272727272727272727272727272727272727273",
      "town_mean_of_daily_values": "4.9794076867588932806324110671936758893280632411068",
      "mean_contrast": "1.2933195859683794466403162055335968379446640316205",
      "median_contrast": "0.79435187391304347826086956521739130434782608695655",
      "mean_absolute_contrast": "1.5158968638339920948616600790513833992094861660079",
      "minimum_contrast": "-1.8422622173913043478260869565217391304347826086957",
      "minimum_contrast_dates": [
        "2025-07-25"
      ],
      "maximum_contrast": "5.0012753478260869565217391304347826086956521739130",
      "maximum_contrast_dates": [
        "2025-07-01"
      ],
      "positive_contrast_days": 18,
      "negative_contrast_days": 4,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 18,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 506
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 22,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "excluded_dates": [
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31"
      ],
      "excluded_date_reasons": {
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 8,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "6.2727272727272727272727272727272727272727272727273",
      "town_mean_of_daily_values": "4.9896344959037010420409629895795903701042040962991",
      "mean_contrast": "1.2830927768235716852317642831476823571685231764283",
      "median_contrast": "0.79929378695652173913043478260869565217391304347825",
      "mean_absolute_contrast": "1.506782713187208048868127919511318720804886812792",
      "minimum_contrast": "-1.7783985652173913043478260869565217391304347826087",
      "minimum_contrast_dates": [
        "2025-07-25"
      ],
      "maximum_contrast": "4.9320592608695652173913043478260869565217391304348",
      "maximum_contrast_dates": [
        "2025-07-01"
      ],
      "positive_contrast_days": 19,
      "negative_contrast_days": 3,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 18,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 505
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 22,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "excluded_dates": [
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31"
      ],
      "excluded_date_reasons": {
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 8,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "6.2727272727272727272727272727272727272727272727273",
      "town_mean_of_daily_values": "4.95503054257994969457420050305425799496945742005",
      "mean_contrast": "1.317696730147323032698526769673014732303269852677",
      "median_contrast": "0.81956521739130434782608695652173913043478260869565",
      "mean_absolute_contrast": "1.5358785483291412145167085878548329141214516708587",
      "minimum_contrast": "-1.9043478260869565217391304347826086956521739130435",
      "minimum_contrast_dates": [
        "2025-07-25"
      ],
      "maximum_contrast": "5.1909090909090909090909090909090909090909090909091",
      "maximum_contrast_dates": [
        "2025-07-01"
      ],
      "positive_contrast_days": 19,
      "negative_contrast_days": 3,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 18,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 504
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 22,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "excluded_dates": [
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31"
      ],
      "excluded_date_reasons": {
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 8,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "6.2727272727272727272727272727272727272727272727273",
      "town_mean_of_daily_values": "4.9790513833992094861660079051383399209486166007905",
      "mean_contrast": "1.2936758893280632411067193675889328063241106719367",
      "median_contrast": "0.7934782608695652173913043478260869565217391304348",
      "mean_absolute_contrast": "1.5146245059288537549407114624505928853754940711461",
      "minimum_contrast": "-1.8304347826086956521739130434782608695652173913043",
      "minimum_contrast_dates": [
        "2025-07-25"
      ],
      "maximum_contrast": "4.9913043478260869565217391304347826086956521739130",
      "maximum_contrast_dates": [
        "2025-07-01"
      ],
      "positive_contrast_days": 18,
      "negative_contrast_days": 4,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 18,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 506
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 22,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "excluded_dates": [
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31"
      ],
      "excluded_date_reasons": {
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 8,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "6.2727272727272727272727272727272727272727272727273",
      "town_mean_of_daily_values": "4.9893999281351060007186489399928135106000718648941",
      "mean_contrast": "1.2833273445921667265540783327344592166726554078332",
      "median_contrast": "0.79782608695652173913043478260869565217391304347825",
      "mean_absolute_contrast": "1.5058569888609414301113905856988860941430111390585",
      "minimum_contrast": "-1.7695652173913043478260869565217391304347826086957",
      "minimum_contrast_dates": [
        "2025-07-25"
      ],
      "maximum_contrast": "4.9217391304347826086956521739130434782608695652174",
      "maximum_contrast_dates": [
        "2025-07-01"
      ],
      "positive_contrast_days": 19,
      "negative_contrast_days": 3,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 18,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 505
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 22,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "excluded_dates": [
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31"
      ],
      "excluded_date_reasons": {
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 8,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "13.631818181818181818181818181818181818181818181818",
      "town_mean_of_daily_values": "8.9671072590909090909090909090909090909090909090909",
      "mean_contrast": "4.6647109227272727272727272727272727272727272727273",
      "median_contrast": "5.130449",
      "mean_absolute_contrast": "4.9964435681818181818181818181818181818181818181818",
      "minimum_contrast": "-3.6001591",
      "minimum_contrast_dates": [
        "2025-07-28"
      ],
      "maximum_contrast": "13.8983753",
      "maximum_contrast_dates": [
        "2025-07-24"
      ],
      "positive_contrast_days": 20,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 20,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 504
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 22,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "excluded_dates": [
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31"
      ],
      "excluded_date_reasons": {
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 8,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "13.631818181818181818181818181818181818181818181818",
      "town_mean_of_daily_values": "9.0610883954545454545454545454545454545454545454545",
      "mean_contrast": "4.5707297863636363636363636363636363636363636363636",
      "median_contrast": "5.130449",
      "mean_absolute_contrast": "4.9024624318181818181818181818181818181818181818182",
      "minimum_contrast": "-3.6001591",
      "minimum_contrast_dates": [
        "2025-07-28"
      ],
      "maximum_contrast": "13.8983753",
      "maximum_contrast_dates": [
        "2025-07-24"
      ],
      "positive_contrast_days": 20,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 20,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 506
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 22,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "excluded_dates": [
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31"
      ],
      "excluded_date_reasons": {
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 8,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "13.631818181818181818181818181818181818181818181818",
      "town_mean_of_daily_values": "9.0461488954545454545454545454545454545454545454545",
      "mean_contrast": "4.5856692863636363636363636363636363636363636363636",
      "median_contrast": "5.130449",
      "mean_absolute_contrast": "4.9174019318181818181818181818181818181818181818182",
      "minimum_contrast": "-3.6001591",
      "minimum_contrast_dates": [
        "2025-07-28"
      ],
      "maximum_contrast": "13.8983753",
      "maximum_contrast_dates": [
        "2025-07-24"
      ],
      "positive_contrast_days": 20,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 20,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 505
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 22,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "excluded_dates": [
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31"
      ],
      "excluded_date_reasons": {
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 8,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "13.631818181818181818181818181818181818181818181818",
      "town_mean_of_daily_values": "8.9590909090909090909090909090909090909090909090909",
      "mean_contrast": "4.6727272727272727272727272727272727272727272727273",
      "median_contrast": "5.1",
      "mean_absolute_contrast": "5.0",
      "minimum_contrast": "-3.6",
      "minimum_contrast_dates": [
        "2025-07-28"
      ],
      "maximum_contrast": "13.9",
      "maximum_contrast_dates": [
        "2025-07-24"
      ],
      "positive_contrast_days": 20,
      "negative_contrast_days": 1,
      "zero_contrast_days": 1,
      "contrast_above_0_1_days": 20,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 504
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 22,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "excluded_dates": [
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31"
      ],
      "excluded_date_reasons": {
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 8,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "13.631818181818181818181818181818181818181818181818",
      "town_mean_of_daily_values": "9.0545454545454545454545454545454545454545454545455",
      "mean_contrast": "4.5772727272727272727272727272727272727272727272727",
      "median_contrast": "5.1",
      "mean_absolute_contrast": "4.9045454545454545454545454545454545454545454545455",
      "minimum_contrast": "-3.6",
      "minimum_contrast_dates": [
        "2025-07-28"
      ],
      "maximum_contrast": "13.9",
      "maximum_contrast_dates": [
        "2025-07-24"
      ],
      "positive_contrast_days": 20,
      "negative_contrast_days": 1,
      "zero_contrast_days": 1,
      "contrast_above_0_1_days": 20,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 506
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 22,
      "dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "excluded_dates": [
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-23",
        "2025-07-31"
      ],
      "excluded_date_reasons": {
        "2025-07-07": [
          "onsite_explicitly_missing"
        ],
        "2025-07-08": [
          "onsite_explicitly_missing"
        ],
        "2025-07-09": [
          "onsite_explicitly_missing"
        ],
        "2025-07-10": [
          "onsite_explicitly_missing"
        ],
        "2025-07-12": [
          "onsite_explicitly_missing"
        ],
        "2025-07-13": [
          "onsite_explicitly_missing"
        ],
        "2025-07-14": [
          "onsite_explicitly_missing"
        ],
        "2025-07-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-07-31": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 8,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "13.631818181818181818181818181818181818181818181818",
      "town_mean_of_daily_values": "9.0409090909090909090909090909090909090909090909091",
      "mean_contrast": "4.5909090909090909090909090909090909090909090909091",
      "median_contrast": "5.1",
      "mean_absolute_contrast": "4.9181818181818181818181818181818181818181818181818",
      "minimum_contrast": "-3.6",
      "minimum_contrast_dates": [
        "2025-07-28"
      ],
      "maximum_contrast": "13.9",
      "maximum_contrast_dates": [
        "2025-07-24"
      ],
      "positive_contrast_days": 20,
      "negative_contrast_days": 1,
      "zero_contrast_days": 1,
      "contrast_above_0_1_days": 20,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 505
    },
    {
      "period": "2025-08",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "11.483870967741935483870967741935483870967741935484",
      "town_mean_of_daily_values": "8.40957952736676016830294530154277699859747545582",
      "mean_contrast": "3.0742914403751753155680224403927068723702664796634",
      "median_contrast": "3.3674871833333333333333333333333333333333333333333",
      "mean_absolute_contrast": "3.1204029608052828424497428705002337540906965871903",
      "minimum_contrast": "-0.7147285666666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-08-17"
      ],
      "maximum_contrast": "6.1755856833333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-08-14"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 743
    },
    {
      "period": "2025-08",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "11.483870967741935483870967741935483870967741935484",
      "town_mean_of_daily_values": "8.4151695742519869097709209911173445535296867695181",
      "mean_contrast": "3.0687013934899485741000467508181393174380551659655",
      "median_contrast": "3.3638909875",
      "mean_absolute_contrast": "3.1132751397265077138849929873772791023842917251053",
      "minimum_contrast": "-0.6908930666666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-08-17"
      ],
      "maximum_contrast": "6.4474518565217391304347826086956521739130434782609",
      "maximum_contrast_dates": [
        "2025-08-15"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 743
    },
    {
      "period": "2025-08",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "11.483870967741935483870967741935483870967741935484",
      "town_mean_of_daily_values": "8.4211528098761103319308087891538101916783543712023",
      "mean_contrast": "3.0627181578658251519401589527816736792893875642823",
      "median_contrast": "3.3906584875",
      "mean_absolute_contrast": "3.1035002879733520336605890603085553997194950911640",
      "minimum_contrast": "-0.6321230166666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-08-17"
      ],
      "maximum_contrast": "6.9826966521739130434782608695652173913043478260870",
      "maximum_contrast_dates": [
        "2025-08-15"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 743
    },
    {
      "period": "2025-08",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "11.483870967741935483870967741935483870967741935484",
      "town_mean_of_daily_values": "8.4079008882655446470313230481533426834969611968210",
      "mean_contrast": "3.0759700794763908368396446937821411874707807386629",
      "median_contrast": "3.375",
      "mean_absolute_contrast": "3.1216690042075736325385694249649368863955119214586",
      "minimum_contrast": "-0.7083333333333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-08-17"
      ],
      "maximum_contrast": "6.1708333333333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-08-14"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 743
    },
    {
      "period": "2025-08",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "11.483870967741935483870967741935483870967741935484",
      "town_mean_of_daily_values": "8.4135168302945301542776998597475455820476858345023",
      "mean_contrast": "3.0703541374474053295932678821879382889200561009818",
      "median_contrast": "3.375",
      "mean_absolute_contrast": "3.1144401589527816736792893875642823749415614773258",
      "minimum_contrast": "-0.6833333333333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-08-17"
      ],
      "maximum_contrast": "6.4434782608695652173913043478260869565217391304348",
      "maximum_contrast_dates": [
        "2025-08-15"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 743
    },
    {
      "period": "2025-08",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "11.483870967741935483870967741935483870967741935484",
      "town_mean_of_daily_values": "8.4195184665731650303880317905563347358578775128565",
      "mean_contrast": "3.0643525011687704534829359513791491351098644226275",
      "median_contrast": "3.3916666666666666666666666666666666666666666666667",
      "mean_absolute_contrast": "3.1046750818139317438055165965404394576905095839178",
      "minimum_contrast": "-0.625",
      "minimum_contrast_dates": [
        "2025-08-17"
      ],
      "maximum_contrast": "6.9782608695652173913043478260869565217391304347826",
      "maximum_contrast_dates": [
        "2025-08-15"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 743
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06"
      ],
      "excluded_date_reasons": {
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "7.532",
      "town_mean_of_daily_values": "6.106858210382359059704597462034532972748075722904",
      "mean_contrast": "1.4251417896176409402954025379654670272519242770959",
      "median_contrast": "1.2213610521739130434782608695652173913043478260870",
      "mean_absolute_contrast": "2.7416465352519242770959018098606199292698148533388",
      "minimum_contrast": "-4.4069217565217391304347826086956521739130434782609",
      "minimum_contrast_dates": [
        "2025-08-13"
      ],
      "maximum_contrast": "7.5755235739130434782608695652173913043478260869565",
      "maximum_contrast_dates": [
        "2025-08-28"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 8,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 16,
      "contrast_below_minus_0_1_days": 8,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 570
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06"
      ],
      "excluded_date_reasons": {
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "7.532",
      "town_mean_of_daily_values": "6.1256179488487622217599334304139796130642812565012",
      "mean_contrast": "1.4063820511512377782400665695860203869357187434991",
      "median_contrast": "1.1744493043478260869565217391304347826086956521739",
      "mean_absolute_contrast": "2.7289069300661535261077595173705013521947160391097",
      "minimum_contrast": "-4.5492800478260869565217391304347826086956521739130",
      "minimum_contrast_dates": [
        "2025-08-13"
      ],
      "maximum_contrast": "7.7338794130434782608695652173913043478260869565217",
      "maximum_contrast_dates": [
        "2025-08-28"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 8,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 15,
      "contrast_below_minus_0_1_days": 8,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 570
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06"
      ],
      "excluded_date_reasons": {
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "7.532",
      "town_mean_of_daily_values": "6.1366430030343249427917620137299771167048054919912",
      "mean_contrast": "1.3953569969656750572082379862700228832951945080092",
      "median_contrast": "1.1164009913043478260869565217391304347826086956522",
      "mean_absolute_contrast": "2.7235610207734553775743707093821510297482837528604",
      "minimum_contrast": "-4.6535099956521739130434782608695652173913043478261",
      "minimum_contrast_dates": [
        "2025-08-13"
      ],
      "maximum_contrast": "7.9378451608695652173913043478260869565217391304348",
      "maximum_contrast_dates": [
        "2025-08-28"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 8,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 17,
      "contrast_below_minus_0_1_days": 8,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 570
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06"
      ],
      "excluded_date_reasons": {
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "7.532",
      "town_mean_of_daily_values": "6.1069448720615768670688579155398377366340753068448",
      "mean_contrast": "1.4250551279384231329311420844601622633659246931558",
      "median_contrast": "1.2130434782608695652173913043478260869565217391304",
      "mean_absolute_contrast": "2.7436405242354899105471187851050551279384231329312",
      "minimum_contrast": "-4.4130434782608695652173913043478260869565217391304",
      "minimum_contrast_dates": [
        "2025-08-13"
      ],
      "maximum_contrast": "7.5782608695652173913043478260869565217391304347826",
      "maximum_contrast_dates": [
        "2025-08-28"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 8,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 16,
      "contrast_below_minus_0_1_days": 8,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 570
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06"
      ],
      "excluded_date_reasons": {
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "7.532",
      "town_mean_of_daily_values": "6.125749531932598294154358227584772207197836488454",
      "mean_contrast": "1.4062504680674017058456417724152277928021635115456",
      "median_contrast": "1.1652173913043478260869565217391304347826086956522",
      "mean_absolute_contrast": "2.7307930101934678593717495319325982941543582275848",
      "minimum_contrast": "-4.5565217391304347826086956521739130434782608695652",
      "minimum_contrast_dates": [
        "2025-08-13"
      ],
      "maximum_contrast": "7.7391304347826086956521739130434782608695652173913",
      "maximum_contrast_dates": [
        "2025-08-28"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 8,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 15,
      "contrast_below_minus_0_1_days": 8,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 570
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06"
      ],
      "excluded_date_reasons": {
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "7.532",
      "town_mean_of_daily_values": "6.1367272727272727272727272727272727272727272727272",
      "mean_contrast": "1.3952727272727272727272727272727272727272727272727",
      "median_contrast": "1.1043478260869565217391304347826086956521739130435",
      "mean_absolute_contrast": "2.7250750988142292490118577075098814229249011857707",
      "minimum_contrast": "-4.6608695652173913043478260869565217391304347826087",
      "minimum_contrast_dates": [
        "2025-08-13"
      ],
      "maximum_contrast": "7.9434782608695652173913043478260869565217391304348",
      "maximum_contrast_dates": [
        "2025-08-28"
      ],
      "positive_contrast_days": 17,
      "negative_contrast_days": 8,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 17,
      "contrast_below_minus_0_1_days": 8,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 570
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06"
      ],
      "excluded_date_reasons": {
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "18.772",
      "town_mean_of_daily_values": "12.591940724",
      "mean_contrast": "6.180059276",
      "median_contrast": "8.1144997",
      "mean_absolute_contrast": "7.4660561",
      "minimum_contrast": "-7.1599577",
      "minimum_contrast_dates": [
        "2025-08-13"
      ],
      "maximum_contrast": "30.3361967",
      "maximum_contrast_dates": [
        "2025-08-29"
      ],
      "positive_contrast_days": 18,
      "negative_contrast_days": 7,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 18,
      "contrast_below_minus_0_1_days": 7,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 570
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06"
      ],
      "excluded_date_reasons": {
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "18.772",
      "town_mean_of_daily_values": "12.571183964",
      "mean_contrast": "6.200816036",
      "median_contrast": "8.1144997",
      "mean_absolute_contrast": "7.48681286",
      "minimum_contrast": "-7.1599577",
      "minimum_contrast_dates": [
        "2025-08-13"
      ],
      "maximum_contrast": "30.3361967",
      "maximum_contrast_dates": [
        "2025-08-29"
      ],
      "positive_contrast_days": 18,
      "negative_contrast_days": 7,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 18,
      "contrast_below_minus_0_1_days": 7,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 570
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06"
      ],
      "excluded_date_reasons": {
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "18.772",
      "town_mean_of_daily_values": "12.571183964",
      "mean_contrast": "6.200816036",
      "median_contrast": "8.1144997",
      "mean_absolute_contrast": "7.48681286",
      "minimum_contrast": "-7.1599577",
      "minimum_contrast_dates": [
        "2025-08-13"
      ],
      "maximum_contrast": "30.3361967",
      "maximum_contrast_dates": [
        "2025-08-29"
      ],
      "positive_contrast_days": 18,
      "negative_contrast_days": 7,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 18,
      "contrast_below_minus_0_1_days": 7,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 570
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06"
      ],
      "excluded_date_reasons": {
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "18.772",
      "town_mean_of_daily_values": "12.596",
      "mean_contrast": "6.176",
      "median_contrast": "8.1",
      "mean_absolute_contrast": "7.456",
      "minimum_contrast": "-7.2",
      "minimum_contrast_dates": [
        "2025-08-13"
      ],
      "maximum_contrast": "30.3",
      "maximum_contrast_dates": [
        "2025-08-29"
      ],
      "positive_contrast_days": 18,
      "negative_contrast_days": 7,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 18,
      "contrast_below_minus_0_1_days": 6,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 570
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06"
      ],
      "excluded_date_reasons": {
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "18.772",
      "town_mean_of_daily_values": "12.576",
      "mean_contrast": "6.196",
      "median_contrast": "8.1",
      "mean_absolute_contrast": "7.476",
      "minimum_contrast": "-7.2",
      "minimum_contrast_dates": [
        "2025-08-13"
      ],
      "maximum_contrast": "30.3",
      "maximum_contrast_dates": [
        "2025-08-29"
      ],
      "positive_contrast_days": 18,
      "negative_contrast_days": 7,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 18,
      "contrast_below_minus_0_1_days": 6,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 570
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "excluded_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06"
      ],
      "excluded_date_reasons": {
        "2025-08-01": [
          "onsite_explicitly_missing"
        ],
        "2025-08-02": [
          "onsite_explicitly_missing"
        ],
        "2025-08-03": [
          "onsite_explicitly_missing"
        ],
        "2025-08-04": [
          "onsite_explicitly_missing"
        ],
        "2025-08-05": [
          "onsite_explicitly_missing"
        ],
        "2025-08-06": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "18.772",
      "town_mean_of_daily_values": "12.576",
      "mean_contrast": "6.196",
      "median_contrast": "8.1",
      "mean_absolute_contrast": "7.476",
      "minimum_contrast": "-7.2",
      "minimum_contrast_dates": [
        "2025-08-13"
      ],
      "maximum_contrast": "30.3",
      "maximum_contrast_dates": [
        "2025-08-29"
      ],
      "positive_contrast_days": 18,
      "negative_contrast_days": 7,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 18,
      "contrast_below_minus_0_1_days": 6,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 570
    },
    {
      "period": "2025-09",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "21.183333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "17.003758878454106280193236714975845410628019323672",
      "mean_contrast": "4.1795744548792270531400966183574879227053140096617",
      "median_contrast": "3.6011363708333333333333333333333333333333333333333",
      "mean_absolute_contrast": "4.1795744548792270531400966183574879227053140096617",
      "minimum_contrast": "1.2117235916666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-09-25"
      ],
      "maximum_contrast": "16.754190725",
      "maximum_contrast_dates": [
        "2025-09-02"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 719
    },
    {
      "period": "2025-09",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "21.183333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "16.997497024969806763285024154589371980676328502416",
      "mean_contrast": "4.1858363083635265700483091787439613526570048309177",
      "median_contrast": "3.8312276041666666666666666666666666666666666666666",
      "mean_absolute_contrast": "4.1858363083635265700483091787439613526570048309177",
      "minimum_contrast": "1.4244151541666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-09-16"
      ],
      "maximum_contrast": "15.500254116666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-09-02"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 719
    },
    {
      "period": "2025-09",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "21.183333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "16.988635759402173913043478260869565217391304347827",
      "mean_contrast": "4.1946975739311594202898550724637681159420289855067",
      "median_contrast": "3.7201660916666666666666666666666666666666666666666",
      "mean_absolute_contrast": "4.1946975739311594202898550724637681159420289855067",
      "minimum_contrast": "1.3116433541666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-09-16"
      ],
      "maximum_contrast": "13.564384741666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-09-02"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 719
    },
    {
      "period": "2025-09",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "21.183333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "17.003472222222222222222222222222222222222222222222",
      "mean_contrast": "4.1798611111111111111111111111111111111111111111113",
      "median_contrast": "3.6125",
      "mean_absolute_contrast": "4.1798611111111111111111111111111111111111111111113",
      "minimum_contrast": "1.2125",
      "minimum_contrast_dates": [
        "2025-09-25"
      ],
      "maximum_contrast": "16.7625",
      "maximum_contrast_dates": [
        "2025-09-02"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 719
    },
    {
      "period": "2025-09",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "21.183333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "16.997228260869565217391304347826086956521739130435",
      "mean_contrast": "4.1861050724637681159420289855072463768115942028983",
      "median_contrast": "3.8354166666666666666666666666666666666666666666666",
      "mean_absolute_contrast": "4.1861050724637681159420289855072463768115942028983",
      "minimum_contrast": "1.425",
      "minimum_contrast_dates": [
        "2025-09-16"
      ],
      "maximum_contrast": "15.508333333333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-09-02"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 719
    },
    {
      "period": "2025-09",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "21.183333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "16.988466183574879227053140096618357487922705314010",
      "mean_contrast": "4.1948671497584541062801932367149758454106280193237",
      "median_contrast": "3.73125",
      "mean_absolute_contrast": "4.1948671497584541062801932367149758454106280193237",
      "minimum_contrast": "1.3125",
      "minimum_contrast_dates": [
        "2025-09-16"
      ],
      "maximum_contrast": "13.570833333333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-09-02"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 23,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 719
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "10.433333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "6.5854296312384716732542819499341238471673254281953",
      "mean_contrast": "3.8479037020948616600790513833992094861660079051383",
      "median_contrast": "3.8367279043478260869565217391304347826086956521739",
      "mean_absolute_contrast": "3.9515033725296442687747035573122529644268774703557",
      "minimum_contrast": "-1.3174120130434782608695652173913043478260869565217",
      "minimum_contrast_dates": [
        "2025-09-11"
      ],
      "maximum_contrast": "9.156810081818181818181818181818181818181818181818",
      "maximum_contrast_dates": [
        "2025-09-03"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 688
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "10.433333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "6.578263556218708827404479578392621870882740447958",
      "mean_contrast": "3.8550697771146245059288537549407114624505928853753",
      "median_contrast": "3.8225337260869565217391304347826086956521739130434",
      "mean_absolute_contrast": "3.967012961752305665349143610013175230566534914361",
      "minimum_contrast": "-1.2564489434782608695652173913043478260869565217391",
      "minimum_contrast_dates": [
        "2025-09-11"
      ],
      "maximum_contrast": "9.203436909090909090909090909090909090909090909091",
      "maximum_contrast_dates": [
        "2025-09-03"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 687
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "10.433333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "6.5766299818840579710144927536231884057971014492747",
      "mean_contrast": "3.8567033514492753623188405797101449275362318840583",
      "median_contrast": "3.8714231130434782608695652173913043478260869565218",
      "mean_absolute_contrast": "3.9793795433333333333333333333333333333333333333337",
      "minimum_contrast": "-1.3235095391304347826086956521739130434782608695652",
      "minimum_contrast_dates": [
        "2025-09-11"
      ],
      "maximum_contrast": "9.144982631818181818181818181818181818181818181818",
      "maximum_contrast_dates": [
        "2025-09-03"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 687
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "10.433333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "6.584196310935441370223978919631093544137022397892",
      "mean_contrast": "3.8491370223978919631093544137022397891963109354417",
      "median_contrast": "3.8413043478260869565217391304347826086956521739130",
      "mean_absolute_contrast": "3.9526152832674571805006587615283267457180500658763",
      "minimum_contrast": "-1.3217391304347826086956521739130434782608695652174",
      "minimum_contrast_dates": [
        "2025-09-11"
      ],
      "maximum_contrast": "9.163636363636363636363636363636363636363636363636",
      "maximum_contrast_dates": [
        "2025-09-03"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 688
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "10.433333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "6.57695652173913043478260869565217391304347826087",
      "mean_contrast": "3.856376811594202898550724637681159420289855072464",
      "median_contrast": "3.8260869565217391304347826086956521739130434782609",
      "mean_absolute_contrast": "3.9682608695652173913043478260869565217391304347827",
      "minimum_contrast": "-1.2608695652173913043478260869565217391304347826087",
      "minimum_contrast_dates": [
        "2025-09-11"
      ],
      "maximum_contrast": "9.209090909090909090909090909090909090909090909091",
      "maximum_contrast_dates": [
        "2025-09-03"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 687
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "10.433333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "6.5753359683794466403162055335968379446640316205537",
      "mean_contrast": "3.85799736495388669301712779973649538866930171278",
      "median_contrast": "3.8739130434782608695652173913043478260869565217391",
      "mean_absolute_contrast": "3.980606060606060606060606060606060606060606060606",
      "minimum_contrast": "-1.3304347826086956521739130434782608695652173913043",
      "minimum_contrast_dates": [
        "2025-09-11"
      ],
      "maximum_contrast": "9.15",
      "maximum_contrast_dates": [
        "2025-09-03"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 687
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "21.496666666666666666666666666666666666666666666667",
      "town_mean_of_daily_values": "11.938297163333333333333333333333333333333333333333",
      "mean_contrast": "9.5583695033333333333333333333333333333333333333333",
      "median_contrast": "8.53190545",
      "mean_absolute_contrast": "9.86514939",
      "minimum_contrast": "-3.2734035",
      "minimum_contrast_dates": [
        "2025-09-19"
      ],
      "maximum_contrast": "27.0717641",
      "maximum_contrast_dates": [
        "2025-09-09"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 688
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "21.496666666666666666666666666666666666666666666667",
      "town_mean_of_daily_values": "11.885795453333333333333333333333333333333333333333",
      "mean_contrast": "9.6108712133333333333333333333333333333333333333333",
      "median_contrast": "8.53190545",
      "mean_absolute_contrast": "9.9176511",
      "minimum_contrast": "-3.2734035",
      "minimum_contrast_dates": [
        "2025-09-19"
      ],
      "maximum_contrast": "27.0717641",
      "maximum_contrast_dates": [
        "2025-09-09"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 687
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "21.496666666666666666666666666666666666666666666667",
      "town_mean_of_daily_values": "11.885795453333333333333333333333333333333333333333",
      "mean_contrast": "9.6108712133333333333333333333333333333333333333333",
      "median_contrast": "8.53190545",
      "mean_absolute_contrast": "9.9176511",
      "minimum_contrast": "-3.2734035",
      "minimum_contrast_dates": [
        "2025-09-19"
      ],
      "maximum_contrast": "27.0717641",
      "maximum_contrast_dates": [
        "2025-09-09"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 687
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "21.496666666666666666666666666666666666666666666667",
      "town_mean_of_daily_values": "11.94",
      "mean_contrast": "9.5566666666666666666666666666666666666666666666667",
      "median_contrast": "8.55",
      "mean_absolute_contrast": "9.8633333333333333333333333333333333333333333333333",
      "minimum_contrast": "-3.3",
      "minimum_contrast_dates": [
        "2025-09-19"
      ],
      "maximum_contrast": "27.1",
      "maximum_contrast_dates": [
        "2025-09-09"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 688
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "21.496666666666666666666666666666666666666666666667",
      "town_mean_of_daily_values": "11.883333333333333333333333333333333333333333333333",
      "mean_contrast": "9.6133333333333333333333333333333333333333333333333",
      "median_contrast": "8.55",
      "mean_absolute_contrast": "9.92",
      "minimum_contrast": "-3.3",
      "minimum_contrast_dates": [
        "2025-09-19"
      ],
      "maximum_contrast": "27.1",
      "maximum_contrast_dates": [
        "2025-09-09"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 687
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 30,
      "dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "21.496666666666666666666666666666666666666666666667",
      "town_mean_of_daily_values": "11.883333333333333333333333333333333333333333333333",
      "mean_contrast": "9.6133333333333333333333333333333333333333333333333",
      "median_contrast": "8.55",
      "mean_absolute_contrast": "9.92",
      "minimum_contrast": "-3.3",
      "minimum_contrast_dates": [
        "2025-09-19"
      ],
      "maximum_contrast": "27.1",
      "maximum_contrast_dates": [
        "2025-09-09"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 22,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 687
    },
    {
      "period": "2025-10",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28"
      ],
      "excluded_date_reasons": {
        "2025-10-23": [
          "onsite_explicitly_missing"
        ],
        "2025-10-24": [
          "onsite_explicitly_missing"
        ],
        "2025-10-25": [
          "onsite_explicitly_missing"
        ],
        "2025-10-26": [
          "onsite_explicitly_missing"
        ],
        "2025-10-27": [
          "onsite_explicitly_missing"
        ],
        "2025-10-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.852",
      "town_mean_of_daily_values": "4.5748365813333333333333333333333333333333333333336",
      "mean_contrast": "2.2771634186666666666666666666666666666666666666666",
      "median_contrast": "2.6962658958333333333333333333333333333333333333333",
      "mean_absolute_contrast": "2.3107464146666666666666666666666666666666666666666",
      "minimum_contrast": "-0.3396965916666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-10-22"
      ],
      "maximum_contrast": "4.1614609416666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-10-02"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 23,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 600
    },
    {
      "period": "2025-10",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28"
      ],
      "excluded_date_reasons": {
        "2025-10-23": [
          "onsite_explicitly_missing"
        ],
        "2025-10-24": [
          "onsite_explicitly_missing"
        ],
        "2025-10-25": [
          "onsite_explicitly_missing"
        ],
        "2025-10-26": [
          "onsite_explicitly_missing"
        ],
        "2025-10-27": [
          "onsite_explicitly_missing"
        ],
        "2025-10-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.852",
      "town_mean_of_daily_values": "4.5817681179999999999999999999999999999999999999996",
      "mean_contrast": "2.2702318820000000000000000000000000000000000000000",
      "median_contrast": "2.6174525208333333333333333333333333333333333333333",
      "mean_absolute_contrast": "2.3085278770000000000000000000000000000000000000001",
      "minimum_contrast": "-0.4539613916666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-10-22"
      ],
      "maximum_contrast": "4.2734204416666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-10-02"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 23,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 600
    },
    {
      "period": "2025-10",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28"
      ],
      "excluded_date_reasons": {
        "2025-10-23": [
          "onsite_explicitly_missing"
        ],
        "2025-10-24": [
          "onsite_explicitly_missing"
        ],
        "2025-10-25": [
          "onsite_explicitly_missing"
        ],
        "2025-10-26": [
          "onsite_explicitly_missing"
        ],
        "2025-10-27": [
          "onsite_explicitly_missing"
        ],
        "2025-10-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.852",
      "town_mean_of_daily_values": "4.5866261730000000000000000000000000000000000000004",
      "mean_contrast": "2.2653738269999999999999999999999999999999999999999",
      "median_contrast": "2.5308249333333333333333333333333333333333333333333",
      "mean_absolute_contrast": "2.3169089049999999999999999999999999999999999999999",
      "minimum_contrast": "-0.5417387666666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-10-22"
      ],
      "maximum_contrast": "4.3141893125",
      "maximum_contrast_dates": [
        "2025-10-02"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 23,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 600
    },
    {
      "period": "2025-10",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28"
      ],
      "excluded_date_reasons": {
        "2025-10-23": [
          "onsite_explicitly_missing"
        ],
        "2025-10-24": [
          "onsite_explicitly_missing"
        ],
        "2025-10-25": [
          "onsite_explicitly_missing"
        ],
        "2025-10-26": [
          "onsite_explicitly_missing"
        ],
        "2025-10-27": [
          "onsite_explicitly_missing"
        ],
        "2025-10-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.852",
      "town_mean_of_daily_values": "4.5756666666666666666666666666666666666666666666664",
      "mean_contrast": "2.2763333333333333333333333333333333333333333333334",
      "median_contrast": "2.7",
      "mean_absolute_contrast": "2.3106666666666666666666666666666666666666666666668",
      "minimum_contrast": "-0.3458333333333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-10-22"
      ],
      "maximum_contrast": "4.1583333333333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-10-02"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 23,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 600
    },
    {
      "period": "2025-10",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28"
      ],
      "excluded_date_reasons": {
        "2025-10-23": [
          "onsite_explicitly_missing"
        ],
        "2025-10-24": [
          "onsite_explicitly_missing"
        ],
        "2025-10-25": [
          "onsite_explicitly_missing"
        ],
        "2025-10-26": [
          "onsite_explicitly_missing"
        ],
        "2025-10-27": [
          "onsite_explicitly_missing"
        ],
        "2025-10-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.852",
      "town_mean_of_daily_values": "4.58250000000000000000000000000000000000000000000",
      "mean_contrast": "2.2695000000000000000000000000000000000000000000000",
      "median_contrast": "2.6208333333333333333333333333333333333333333333333",
      "mean_absolute_contrast": "2.3084999999999999999999999999999999999999999999999",
      "minimum_contrast": "-0.4583333333333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-10-22"
      ],
      "maximum_contrast": "4.2708333333333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-10-02"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 23,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 600
    },
    {
      "period": "2025-10",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 25,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28"
      ],
      "excluded_date_reasons": {
        "2025-10-23": [
          "onsite_explicitly_missing"
        ],
        "2025-10-24": [
          "onsite_explicitly_missing"
        ],
        "2025-10-25": [
          "onsite_explicitly_missing"
        ],
        "2025-10-26": [
          "onsite_explicitly_missing"
        ],
        "2025-10-27": [
          "onsite_explicitly_missing"
        ],
        "2025-10-28": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 6
      },
      "onsite_mean_of_daily_values": "6.852",
      "town_mean_of_daily_values": "4.5873333333333333333333333333333333333333333333336",
      "mean_contrast": "2.2646666666666666666666666666666666666666666666666",
      "median_contrast": "2.5333333333333333333333333333333333333333333333333",
      "mean_absolute_contrast": "2.3166666666666666666666666666666666666666666666666",
      "minimum_contrast": "-0.5458333333333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-10-22"
      ],
      "maximum_contrast": "4.3125",
      "maximum_contrast_dates": [
        "2025-10-02"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 23,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 24,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 600
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 27,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14"
      ],
      "excluded_date_reasons": {
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 4
      },
      "onsite_mean_of_daily_values": "10.037037037037037037037037037037037037037037037037",
      "town_mean_of_daily_values": "5.5088159349906936863458602589037371646067298241211",
      "mean_contrast": "4.5282211020463433506911767781332998724303072129159",
      "median_contrast": "3.8442595",
      "mean_absolute_contrast": "4.5282211020463433506911767781332998724303072129159",
      "minimum_contrast": "1.2029516434782608695652173913043478260869565217391",
      "minimum_contrast_dates": [
        "2025-10-15"
      ],
      "maximum_contrast": "11.6298689",
      "maximum_contrast_dates": [
        "2025-10-25"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 27,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 617
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 27,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14"
      ],
      "excluded_date_reasons": {
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 4
      },
      "onsite_mean_of_daily_values": "10.037037037037037037037037037037037037037037037037",
      "town_mean_of_daily_values": "5.5164793573094645558413674355703341210587587399185",
      "mean_contrast": "4.5205576797275724811956696014667029159782782971189",
      "median_contrast": "3.8122810782608695652173913043478260869565217391304",
      "mean_absolute_contrast": "4.5205576797275724811956696014667029159782782971189",
      "minimum_contrast": "1.2097406695652173913043478260869565217391304347826",
      "minimum_contrast_dates": [
        "2025-10-06"
      ],
      "maximum_contrast": "11.728244595652173913043478260869565217391304347826",
      "maximum_contrast_dates": [
        "2025-10-25"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 27,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 618
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 27,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14"
      ],
      "excluded_date_reasons": {
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 4
      },
      "onsite_mean_of_daily_values": "10.037037037037037037037037037037037037037037037037",
      "town_mean_of_daily_values": "5.5173698066629023150762281197063805759457933370981",
      "mean_contrast": "4.5196672303741347219608089173306564610912436999389",
      "median_contrast": "3.7145014260869565217391304347826086956521739130435",
      "mean_absolute_contrast": "4.5196672303741347219608089173306564610912436999389",
      "minimum_contrast": "1.2094971521739130434782608695652173913043478260870",
      "minimum_contrast_dates": [
        "2025-10-06"
      ],
      "maximum_contrast": "11.707316595652173913043478260869565217391304347826",
      "maximum_contrast_dates": [
        "2025-10-25"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 27,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 618
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 27,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14"
      ],
      "excluded_date_reasons": {
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 4
      },
      "onsite_mean_of_daily_values": "10.037037037037037037037037037037037037037037037037",
      "town_mean_of_daily_values": "5.5101675833559891530906023659646848052645154094433",
      "mean_contrast": "4.5268694536810478839464346710723522317725216275941",
      "median_contrast": "3.8304347826086956521739130434782608695652173913043",
      "mean_absolute_contrast": "4.5268694536810478839464346710723522317725216275941",
      "minimum_contrast": "1.2130434782608695652173913043478260869565217391304",
      "minimum_contrast_dates": [
        "2025-10-15"
      ],
      "maximum_contrast": "11.617391304347826086956521739130434782608695652174",
      "maximum_contrast_dates": [
        "2025-10-25"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 27,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 617
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 27,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14"
      ],
      "excluded_date_reasons": {
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 4
      },
      "onsite_mean_of_daily_values": "10.037037037037037037037037037037037037037037037037",
      "town_mean_of_daily_values": "5.5178862468717541181309297251326236833483210294804",
      "mean_contrast": "4.5191507901652829189061073119044133536887160075570",
      "median_contrast": "3.8130434782608695652173913043478260869565217391304",
      "mean_absolute_contrast": "4.5191507901652829189061073119044133536887160075570",
      "minimum_contrast": "1.2043478260869565217391304347826086956521739130435",
      "minimum_contrast_dates": [
        "2025-10-06"
      ],
      "maximum_contrast": "11.717391304347826086956521739130434782608695652174",
      "maximum_contrast_dates": [
        "2025-10-25"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 27,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 618
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 27,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14"
      ],
      "excluded_date_reasons": {
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 4
      },
      "onsite_mean_of_daily_values": "10.037037037037037037037037037037037037037037037037",
      "town_mean_of_daily_values": "5.5186464367623787913642986106754222696251681758930",
      "mean_contrast": "4.5183906002746582456727384263616147674118688611441",
      "median_contrast": "3.7173913043478260869565217391304347826086956521739",
      "mean_absolute_contrast": "4.5183906002746582456727384263616147674118688611441",
      "minimum_contrast": "1.2043478260869565217391304347826086956521739130435",
      "minimum_contrast_dates": [
        "2025-10-06"
      ],
      "maximum_contrast": "11.7",
      "maximum_contrast_dates": [
        "2025-10-25"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 27,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 618
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 27,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14"
      ],
      "excluded_date_reasons": {
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 4
      },
      "onsite_mean_of_daily_values": "19.355555555555555555555555555555555555555555555556",
      "town_mean_of_daily_values": "12.110462670370370370370370370370370370370370370370",
      "mean_contrast": "7.2450928851851851851851851851851851851851851851852",
      "median_contrast": "6.5905159",
      "mean_absolute_contrast": "7.6229587148148148148148148148148148148148148148148",
      "minimum_contrast": "-3.3559504",
      "minimum_contrast_dates": [
        "2025-10-06"
      ],
      "maximum_contrast": "18.490757",
      "maximum_contrast_dates": [
        "2025-10-02"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 4,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 23,
      "contrast_below_minus_0_1_days": 4,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 617
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 27,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14"
      ],
      "excluded_date_reasons": {
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 4
      },
      "onsite_mean_of_daily_values": "19.355555555555555555555555555555555555555555555556",
      "town_mean_of_daily_values": "12.088365374074074074074074074074074074074074074074",
      "mean_contrast": "7.2671901814814814814814814814814814814814814814815",
      "median_contrast": "6.5905159",
      "mean_absolute_contrast": "7.6450560111111111111111111111111111111111111111111",
      "minimum_contrast": "-3.3559504",
      "minimum_contrast_dates": [
        "2025-10-06"
      ],
      "maximum_contrast": "18.733867",
      "maximum_contrast_dates": [
        "2025-10-25"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 4,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 23,
      "contrast_below_minus_0_1_days": 4,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 618
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 27,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14"
      ],
      "excluded_date_reasons": {
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 4
      },
      "onsite_mean_of_daily_values": "19.355555555555555555555555555555555555555555555556",
      "town_mean_of_daily_values": "12.088365374074074074074074074074074074074074074074",
      "mean_contrast": "7.2671901814814814814814814814814814814814814814815",
      "median_contrast": "6.5905159",
      "mean_absolute_contrast": "7.6450560111111111111111111111111111111111111111111",
      "minimum_contrast": "-3.3559504",
      "minimum_contrast_dates": [
        "2025-10-06"
      ],
      "maximum_contrast": "18.733867",
      "maximum_contrast_dates": [
        "2025-10-25"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 4,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 23,
      "contrast_below_minus_0_1_days": 4,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 618
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 27,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14"
      ],
      "excluded_date_reasons": {
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 4
      },
      "onsite_mean_of_daily_values": "19.355555555555555555555555555555555555555555555556",
      "town_mean_of_daily_values": "12.111111111111111111111111111111111111111111111111",
      "mean_contrast": "7.2444444444444444444444444444444444444444444444444",
      "median_contrast": "6.6",
      "mean_absolute_contrast": "7.6296296296296296296296296296296296296296296296296",
      "minimum_contrast": "-3.4",
      "minimum_contrast_dates": [
        "2025-10-06"
      ],
      "maximum_contrast": "18.5",
      "maximum_contrast_dates": [
        "2025-10-02"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 4,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 23,
      "contrast_below_minus_0_1_days": 4,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 617
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 27,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14"
      ],
      "excluded_date_reasons": {
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 4
      },
      "onsite_mean_of_daily_values": "19.355555555555555555555555555555555555555555555556",
      "town_mean_of_daily_values": "12.088888888888888888888888888888888888888888888889",
      "mean_contrast": "7.2666666666666666666666666666666666666666666666667",
      "median_contrast": "6.6",
      "mean_absolute_contrast": "7.6518518518518518518518518518518518518518518518519",
      "minimum_contrast": "-3.4",
      "minimum_contrast_dates": [
        "2025-10-06"
      ],
      "maximum_contrast": "18.7",
      "maximum_contrast_dates": [
        "2025-10-25"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 4,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 23,
      "contrast_below_minus_0_1_days": 4,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 618
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 27,
      "dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "excluded_dates": [
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14"
      ],
      "excluded_date_reasons": {
        "2025-10-11": [
          "onsite_explicitly_missing"
        ],
        "2025-10-12": [
          "onsite_explicitly_missing"
        ],
        "2025-10-13": [
          "onsite_explicitly_missing"
        ],
        "2025-10-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 4
      },
      "onsite_mean_of_daily_values": "19.355555555555555555555555555555555555555555555556",
      "town_mean_of_daily_values": "12.088888888888888888888888888888888888888888888889",
      "mean_contrast": "7.2666666666666666666666666666666666666666666666667",
      "median_contrast": "6.6",
      "mean_absolute_contrast": "7.6518518518518518518518518518518518518518518518519",
      "minimum_contrast": "-3.4",
      "minimum_contrast_dates": [
        "2025-10-06"
      ],
      "maximum_contrast": "18.7",
      "maximum_contrast_dates": [
        "2025-10-25"
      ],
      "positive_contrast_days": 23,
      "negative_contrast_days": 4,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 23,
      "contrast_below_minus_0_1_days": 4,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 618
    },
    {
      "period": "2025-11",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 29,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-14"
      ],
      "excluded_date_reasons": {
        "2025-11-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1
      },
      "onsite_mean_of_daily_values": "6.1206896551724137931034482758620689655172413793103",
      "town_mean_of_daily_values": "3.5050752160509031198686371100164203612479474548441",
      "mean_contrast": "2.6156144391215106732348111658456486042692939244663",
      "median_contrast": "2.6907649375",
      "mean_absolute_contrast": "2.7506180350985221674876847290640394088669950738916",
      "minimum_contrast": "-1.3586030791666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-11-07"
      ],
      "maximum_contrast": "5.5842006166666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-11-10"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 25,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 693
    },
    {
      "period": "2025-11",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 29,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-14"
      ],
      "excluded_date_reasons": {
        "2025-11-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1
      },
      "onsite_mean_of_daily_values": "6.1206896551724137931034482758620689655172413793103",
      "town_mean_of_daily_values": "3.5117508315065681444991789819376026272577996715928",
      "mean_contrast": "2.6089388236658456486042692939244663382594417077176",
      "median_contrast": "2.5603705583333333333333333333333333333333333333333",
      "mean_absolute_contrast": "2.7590655868842364532019704433497536945812807881774",
      "minimum_contrast": "-1.4908099125",
      "minimum_contrast_dates": [
        "2025-11-07"
      ],
      "maximum_contrast": "5.4218288666666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-11-10"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 693
    },
    {
      "period": "2025-11",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 29,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-14"
      ],
      "excluded_date_reasons": {
        "2025-11-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1
      },
      "onsite_mean_of_daily_values": "6.1206896551724137931034482758620689655172413793103",
      "town_mean_of_daily_values": "3.5254452490353037766830870279146141215106732348114",
      "mean_contrast": "2.5952444061371100164203612479474548440065681444991",
      "median_contrast": "2.5391808708333333333333333333333333333333333333333",
      "mean_absolute_contrast": "2.7593474104474548440065681444991789819376026272578",
      "minimum_contrast": "-1.5378519541666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-11-07"
      ],
      "maximum_contrast": "5.4185678583333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-11-08"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 3,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 3,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 693
    },
    {
      "period": "2025-11",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 29,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-14"
      ],
      "excluded_date_reasons": {
        "2025-11-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1
      },
      "onsite_mean_of_daily_values": "6.1206896551724137931034482758620689655172413793103",
      "town_mean_of_daily_values": "3.5047824302134646962233169129720853858784893267652",
      "mean_contrast": "2.6159072249589490968801313628899835796387520525451",
      "median_contrast": "2.6833333333333333333333333333333333333333333333333",
      "mean_absolute_contrast": "2.7506773399014778325123152709359605911330049261084",
      "minimum_contrast": "-1.3541666666666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-11-07"
      ],
      "maximum_contrast": "5.6",
      "maximum_contrast_dates": [
        "2025-11-10"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 25,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 693
    },
    {
      "period": "2025-11",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 29,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-14"
      ],
      "excluded_date_reasons": {
        "2025-11-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1
      },
      "onsite_mean_of_daily_values": "6.1206896551724137931034482758620689655172413793103",
      "town_mean_of_daily_values": "3.5114121510673234811165845648604269293924466338259",
      "mean_contrast": "2.6092775041050903119868637110016420361247947454844",
      "median_contrast": "2.5541666666666666666666666666666666666666666666667",
      "mean_absolute_contrast": "2.7592775041050903119868637110016420361247947454844",
      "minimum_contrast": "-1.4875",
      "minimum_contrast_dates": [
        "2025-11-07"
      ],
      "maximum_contrast": "5.4375",
      "maximum_contrast_dates": [
        "2025-11-10"
      ],
      "positive_contrast_days": 27,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 693
    },
    {
      "period": "2025-11",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 30,
      "pair_count": 29,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-14"
      ],
      "excluded_date_reasons": {
        "2025-11-14": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 1
      },
      "onsite_mean_of_daily_values": "6.1206896551724137931034482758620689655172413793103",
      "town_mean_of_daily_values": "3.5251231527093596059113300492610837438423645320197",
      "mean_contrast": "2.5955665024630541871921182266009852216748768472907",
      "median_contrast": "2.5416666666666666666666666666666666666666666666667",
      "mean_absolute_contrast": "2.7596469622331691297208538587848932676518883415436",
      "minimum_contrast": "-1.5375",
      "minimum_contrast_dates": [
        "2025-11-07"
      ],
      "maximum_contrast": "5.4208333333333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-11-08"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 3,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 3,
      "minimum_town_valid_hours": 21,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 693
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 2,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "10.577777777777777777777777777777777777777777777778",
      "town_mean_of_daily_values": "4.9111970210811393877755433819507046051668477297767",
      "mean_contrast": "5.6665807566966383900022343958270731726109300480015",
      "median_contrast": "4.9530134913043478260869565217391304347826086956522",
      "mean_absolute_contrast": "5.6670726191765095655255838322199878263951490496119",
      "minimum_contrast": "-0.0066401434782608695652173913043478260869565217391",
      "minimum_contrast_dates": [
        "2025-11-29"
      ],
      "maximum_contrast": "11.738998126086956521739130434782608695652173913044",
      "maximum_contrast_dates": [
        "2025-11-13"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 616
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 2,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "10.577777777777777777777777777777777777777777777778",
      "town_mean_of_daily_values": "4.9113840347097982109423757021011025587684626586226",
      "mean_contrast": "5.6663937430679795668354020756766752190093151191556",
      "median_contrast": "5.0792431478260869565217391304347826086956521739130",
      "mean_absolute_contrast": "5.6678544751130681336630993381565463945326645555481",
      "minimum_contrast": "-0.0197198826086956521739130434782608695652173913043",
      "minimum_contrast_dates": [
        "2025-11-29"
      ],
      "maximum_contrast": "11.477019247826086956521739130434782608695652173913",
      "maximum_contrast_dates": [
        "2025-11-13"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 616
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 2,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "10.577777777777777777777777777777777777777777777778",
      "town_mean_of_daily_values": "4.9251048882366764517794266078018938430837744338885",
      "mean_contrast": "5.6526728895411013259983511699758839346940033438896",
      "median_contrast": "5.2191124521739130434782608695652173913043478260870",
      "mean_absolute_contrast": "5.6601560051610691198791885290741125981400580942919",
      "minimum_contrast": "-0.1010220608695652173913043478260869565217391304348",
      "minimum_contrast_dates": [
        "2025-11-29"
      ],
      "maximum_contrast": "11.416136817391304347826086956521739130434782608696",
      "maximum_contrast_dates": [
        "2025-11-22"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 616
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 2,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "10.577777777777777777777777777777777777777777777778",
      "town_mean_of_daily_values": "4.9109019254328178813304671428241222291565540993459",
      "mean_contrast": "5.6668758523449598964473106349536555486212236784319",
      "median_contrast": "4.9521739130434782608695652173913043478260869565217",
      "mean_absolute_contrast": "5.6671979135365863054650240004931080445954587831015",
      "minimum_contrast": "-0.0043478260869565217391304347826086956521739130435",
      "minimum_contrast_dates": [
        "2025-11-29"
      ],
      "maximum_contrast": "11.734782608695652173913043478260869565217391304348",
      "maximum_contrast_dates": [
        "2025-11-13"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 616
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 2,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "10.577777777777777777777777777777777777777777777778",
      "town_mean_of_daily_values": "4.9109273513163673346739708295772368998913621339252",
      "mean_contrast": "5.6668504264614104431038069482005408778864156438526",
      "median_contrast": "5.0782608695652173913043478260869565217391304347826",
      "mean_absolute_contrast": "5.6681386712279160791746604103583508617833560625319",
      "minimum_contrast": "-0.0173913043478260869565217391304347826086956521739",
      "minimum_contrast_dates": [
        "2025-11-29"
      ],
      "maximum_contrast": "11.473913043478260869565217391304347826086956521739",
      "maximum_contrast_dates": [
        "2025-11-13"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 616
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 2,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "10.577777777777777777777777777777777777777777777778",
      "town_mean_of_daily_values": "4.9243988319503193645070075276024932775504857884722",
      "mean_contrast": "5.6533789458274584132707702501752845002272919893056",
      "median_contrast": "5.2173913043478260869565217391304347826086956521739",
      "mean_absolute_contrast": "5.6607863532348658206781776575826919076346993967130",
      "minimum_contrast": "-0.1",
      "minimum_contrast_dates": [
        "2025-11-29"
      ],
      "maximum_contrast": "11.413043478260869565217391304347826086956521739130",
      "maximum_contrast_dates": [
        "2025-11-22"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 616
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 2,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "20.196296296296296296296296296296296296296296296296",
      "town_mean_of_daily_values": "10.572032088888888888888888888888888888888888888889",
      "mean_contrast": "9.6242642074074074074074074074074074074074074074074",
      "median_contrast": "10.6064211",
      "mean_absolute_contrast": "9.6485623703703703703703703703703703703703703703704",
      "minimum_contrast": "-0.3280252",
      "minimum_contrast_dates": [
        "2025-11-03"
      ],
      "maximum_contrast": "18.582098",
      "maximum_contrast_dates": [
        "2025-11-16"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 616
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 2,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "20.196296296296296296296296296296296296296296296296",
      "town_mean_of_daily_values": "10.523470870370370370370370370370370370370370370370",
      "mean_contrast": "9.6728254259259259259259259259259259259259259259259",
      "median_contrast": "10.6064211",
      "mean_absolute_contrast": "9.6971235888888888888888888888888888888888888888889",
      "minimum_contrast": "-0.3280252",
      "minimum_contrast_dates": [
        "2025-11-03"
      ],
      "maximum_contrast": "18.582098",
      "maximum_contrast_dates": [
        "2025-11-16"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 616
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 2,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "20.196296296296296296296296296296296296296296296296",
      "town_mean_of_daily_values": "10.513149092592592592592592592592592592592592592593",
      "mean_contrast": "9.6831472037037037037037037037037037037037037037037",
      "median_contrast": "10.6064211",
      "mean_absolute_contrast": "9.7074453666666666666666666666666666666666666666667",
      "minimum_contrast": "-0.3280252",
      "minimum_contrast_dates": [
        "2025-11-03"
      ],
      "maximum_contrast": "18.582098",
      "maximum_contrast_dates": [
        "2025-11-16"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 616
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 2,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "20.196296296296296296296296296296296296296296296296",
      "town_mean_of_daily_values": "10.555555555555555555555555555555555555555555555556",
      "mean_contrast": "9.6407407407407407407407407407407407407407407407407",
      "median_contrast": "10.6",
      "mean_absolute_contrast": "9.6629629629629629629629629629629629629629629629630",
      "minimum_contrast": "-0.3",
      "minimum_contrast_dates": [
        "2025-11-03"
      ],
      "maximum_contrast": "18.6",
      "maximum_contrast_dates": [
        "2025-11-16"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 616
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 2,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "20.196296296296296296296296296296296296296296296296",
      "town_mean_of_daily_values": "10.507407407407407407407407407407407407407407407407",
      "mean_contrast": "9.6888888888888888888888888888888888888888888888889",
      "median_contrast": "10.6",
      "mean_absolute_contrast": "9.7111111111111111111111111111111111111111111111111",
      "minimum_contrast": "-0.3",
      "minimum_contrast_dates": [
        "2025-11-03"
      ],
      "maximum_contrast": "18.6",
      "maximum_contrast_dates": [
        "2025-11-16"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 616
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 30,
      "pair_count": 27,
      "dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "excluded_dates": [
        "2025-11-04",
        "2025-11-19",
        "2025-11-20"
      ],
      "excluded_date_reasons": {
        "2025-11-04": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-11-19": [
          "onsite_explicitly_missing"
        ],
        "2025-11-20": [
          "onsite_explicitly_missing"
        ]
      },
      "exclusion_reason_counts": {
        "onsite_explicitly_missing": 2,
        "town_fewer_than_18_numeric_hours": 1
      },
      "onsite_mean_of_daily_values": "20.196296296296296296296296296296296296296296296296",
      "town_mean_of_daily_values": "10.496296296296296296296296296296296296296296296296",
      "mean_contrast": "9.7",
      "median_contrast": "10.6",
      "mean_absolute_contrast": "9.7222222222222222222222222222222222222222222222222",
      "minimum_contrast": "-0.3",
      "minimum_contrast_dates": [
        "2025-11-03"
      ],
      "maximum_contrast": "18.6",
      "maximum_contrast_dates": [
        "2025-11-16"
      ],
      "positive_contrast_days": 26,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 26,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 19,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 616
    },
    {
      "period": "2025-12",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 20,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-12-18",
        "2025-12-19",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29"
      ],
      "excluded_date_reasons": {
        "2025-12-18": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-19": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-21": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-22": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-24": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-25": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-28": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-29": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 11
      },
      "onsite_mean_of_daily_values": "6.335",
      "town_mean_of_daily_values": "3.0927818786666666666666666666666666666666666666666",
      "mean_contrast": "3.2422181213333333333333333333333333333333333333334",
      "median_contrast": "3.3463455062500000000000000000000000000000000000000",
      "mean_absolute_contrast": "3.2422181213333333333333333333333333333333333333334",
      "minimum_contrast": "0.6015866791666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-12-09"
      ],
      "maximum_contrast": "5.4624447708333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-12-17"
      ],
      "positive_contrast_days": 20,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 20,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 476
    },
    {
      "period": "2025-12",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 20,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-12-18",
        "2025-12-19",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29"
      ],
      "excluded_date_reasons": {
        "2025-12-18": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-19": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-21": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-22": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-24": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-25": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-28": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-29": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 11
      },
      "onsite_mean_of_daily_values": "6.335",
      "town_mean_of_daily_values": "3.0799029185307971014492753623188405797101449275362",
      "mean_contrast": "3.2550970814692028985507246376811594202898550724638",
      "median_contrast": "3.3439078437500000000000000000000000000000000000000",
      "mean_absolute_contrast": "3.2550970814692028985507246376811594202898550724638",
      "minimum_contrast": "0.5475292625",
      "minimum_contrast_dates": [
        "2025-12-09"
      ],
      "maximum_contrast": "5.420914025",
      "maximum_contrast_dates": [
        "2025-12-17"
      ],
      "positive_contrast_days": 20,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 20,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 475
    },
    {
      "period": "2025-12",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 19,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "excluded_dates": [
        "2025-12-18",
        "2025-12-19",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-31"
      ],
      "excluded_date_reasons": {
        "2025-12-18": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-19": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-21": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-22": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-24": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-25": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-28": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-29": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-31": [
          "outside_acquired_verified_coverage"
        ]
      },
      "exclusion_reason_counts": {
        "outside_acquired_verified_coverage": 1,
        "town_fewer_than_18_numeric_hours": 11
      },
      "onsite_mean_of_daily_values": "6.3368421052631578947368421052631578947368421052632",
      "town_mean_of_daily_values": "3.0303063041907634699396713126690243395048887039733",
      "mean_contrast": "3.3065358010723944247971707925941335552319534012898",
      "median_contrast": "3.5243027041666666666666666666666666666666666666667",
      "mean_absolute_contrast": "3.3065358010723944247971707925941335552319534012898",
      "minimum_contrast": "0.5333372208333333333333333333333333333333333333333",
      "minimum_contrast_dates": [
        "2025-12-09"
      ],
      "maximum_contrast": "5.4036397217391304347826086956521739130434782608696",
      "maximum_contrast_dates": [
        "2025-12-17"
      ],
      "positive_contrast_days": 19,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 19,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 449
    },
    {
      "period": "2025-12",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 20,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-12-18",
        "2025-12-19",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29"
      ],
      "excluded_date_reasons": {
        "2025-12-18": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-19": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-21": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-22": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-24": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-25": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-28": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-29": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 11
      },
      "onsite_mean_of_daily_values": "6.335",
      "town_mean_of_daily_values": "3.093750000000000000000000000000000000000000000000",
      "mean_contrast": "3.241250000000000000000000000000000000000000000000",
      "median_contrast": "3.3458333333333333333333333333333333333333333333334",
      "mean_absolute_contrast": "3.241250000000000000000000000000000000000000000000",
      "minimum_contrast": "0.5916666666666666666666666666666666666666666666667",
      "minimum_contrast_dates": [
        "2025-12-09"
      ],
      "maximum_contrast": "5.4708333333333333333333333333333333333333333333333",
      "maximum_contrast_dates": [
        "2025-12-17"
      ],
      "positive_contrast_days": 20,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 20,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 476
    },
    {
      "period": "2025-12",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 20,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [
        "2025-12-18",
        "2025-12-19",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29"
      ],
      "excluded_date_reasons": {
        "2025-12-18": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-19": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-21": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-22": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-24": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-25": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-28": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-29": [
          "town_fewer_than_18_numeric_hours"
        ]
      },
      "exclusion_reason_counts": {
        "town_fewer_than_18_numeric_hours": 11
      },
      "onsite_mean_of_daily_values": "6.335",
      "town_mean_of_daily_values": "3.0807499999999999999999999999999999999999999999999",
      "mean_contrast": "3.2542500000000000000000000000000000000000000000001",
      "median_contrast": "3.3354166666666666666666666666666666666666666666667",
      "mean_absolute_contrast": "3.2542500000000000000000000000000000000000000000001",
      "minimum_contrast": "0.5375",
      "minimum_contrast_dates": [
        "2025-12-09"
      ],
      "maximum_contrast": "5.4291666666666666666666666666666666666666666666667",
      "maximum_contrast_dates": [
        "2025-12-17"
      ],
      "positive_contrast_days": 20,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 20,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 475
    },
    {
      "period": "2025-12",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ug/m3",
      "expected_count": 31,
      "pair_count": 19,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "excluded_dates": [
        "2025-12-18",
        "2025-12-19",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-31"
      ],
      "excluded_date_reasons": {
        "2025-12-18": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-19": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-21": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-22": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-23": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-24": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-25": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-26": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-27": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-28": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-29": [
          "town_fewer_than_18_numeric_hours"
        ],
        "2025-12-31": [
          "outside_acquired_verified_coverage"
        ]
      },
      "exclusion_reason_counts": {
        "outside_acquired_verified_coverage": 1,
        "town_fewer_than_18_numeric_hours": 11
      },
      "onsite_mean_of_daily_values": "6.3368421052631578947368421052631578947368421052632",
      "town_mean_of_daily_values": "3.0313868663754247278274738228971638582622564315928",
      "mean_contrast": "3.3054552388877331669093682823659940364745856736704",
      "median_contrast": "3.5125",
      "mean_absolute_contrast": "3.3054552388877331669093682823659940364745856736704",
      "minimum_contrast": "0.525",
      "minimum_contrast_dates": [
        "2025-12-09"
      ],
      "maximum_contrast": "5.4130434782608695652173913043478260869565217391304",
      "maximum_contrast_dates": [
        "2025-12-17"
      ],
      "positive_contrast_days": 19,
      "negative_contrast_days": 0,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 19,
      "contrast_below_minus_0_1_days": 0,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 24,
      "total_town_valid_hours": 449
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "11.125806451612903225806451612903225806451612903226",
      "town_mean_of_daily_values": "5.1808135534546729567767435930128777253601938033906",
      "mean_contrast": "5.9449928981582302690297080198903480810914190998352",
      "median_contrast": "6.1333650",
      "mean_absolute_contrast": "5.9705270740348081091419099834247099324238174168055",
      "minimum_contrast": "-0.3957797260869565217391304347826086956521739130435",
      "minimum_contrast_dates": [
        "2025-12-19"
      ],
      "maximum_contrast": "11.310117513043478260869565217391304347826086956522",
      "maximum_contrast_dates": [
        "2025-12-14"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 709
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "11.125806451612903225806451612903225806451612903226",
      "town_mean_of_daily_values": "5.1802214585917378554124697182200688512048960856813",
      "mean_contrast": "5.9455849930211653703939818946831569552467168175445",
      "median_contrast": "6.0632068652173913043478260869565217391304347826087",
      "mean_absolute_contrast": "5.9783459237364528879255386969271962259339538441923",
      "minimum_contrast": "-0.5077944260869565217391304347826086956521739130435",
      "minimum_contrast_dates": [
        "2025-12-19"
      ],
      "maximum_contrast": "11.150404491304347826086956521739130434782608695652",
      "maximum_contrast_dates": [
        "2025-12-14"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 708
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 30,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "excluded_dates": [
        "2025-12-31"
      ],
      "excluded_date_reasons": {
        "2025-12-31": [
          "outside_acquired_verified_coverage"
        ]
      },
      "exclusion_reason_counts": {
        "outside_acquired_verified_coverage": 1
      },
      "onsite_mean_of_daily_values": "11.223333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "5.2467552307971014492753623188405797101449275362323",
      "mean_contrast": "5.9765781025362318840579710144927536231884057971013",
      "median_contrast": "6.174345391304347826086956521739130434782608695652",
      "mean_absolute_contrast": "6.013789617898550724637681159420289855072463768116",
      "minimum_contrast": "-0.5581727304347826086956521739130434782608695652174",
      "minimum_contrast_dates": [
        "2025-12-19"
      ],
      "maximum_contrast": "11.130000795652173913043478260869565217391304347826",
      "maximum_contrast_dates": [
        "2025-12-14"
      ],
      "positive_contrast_days": 29,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 29,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 685
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "11.125806451612903225806451612903225806451612903226",
      "town_mean_of_daily_values": "5.1807031748055590972842024735432870075226316460539",
      "mean_contrast": "5.9451032768073441285222491393599387989289812571719",
      "median_contrast": "6.130434782608695652173913043478260869565217391304",
      "mean_absolute_contrast": "5.9697877087849037358153767690934591355348718602577",
      "minimum_contrast": "-0.3826086956521739130434782608695652173913043478261",
      "minimum_contrast_dates": [
        "2025-12-19"
      ],
      "maximum_contrast": "11.317391304347826086956521739130434782608695652174",
      "maximum_contrast_dates": [
        "2025-12-14"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 709
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "11.125806451612903225806451612903225806451612903226",
      "town_mean_of_daily_values": "5.1800873390284329975774576055080963916868545199542",
      "mean_contrast": "5.9457191125844702282289940073951294147647583832719",
      "median_contrast": "6.0565217391304347826086956521739130434782608695652",
      "mean_absolute_contrast": "5.9776966721917633558587275277317353053678439372694",
      "minimum_contrast": "-0.4956521739130434782608695652173913043478260869565",
      "minimum_contrast_dates": [
        "2025-12-19"
      ],
      "maximum_contrast": "11.156521739130434782608695652173913043478260869565",
      "maximum_contrast_dates": [
        "2025-12-14"
      ],
      "positive_contrast_days": 30,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 30,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 708
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 30,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "excluded_dates": [
        "2025-12-31"
      ],
      "excluded_date_reasons": {
        "2025-12-31": [
          "outside_acquired_verified_coverage"
        ]
      },
      "exclusion_reason_counts": {
        "outside_acquired_verified_coverage": 1
      },
      "onsite_mean_of_daily_values": "11.223333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "5.2464776021080368906455862977602108036890645586297",
      "mean_contrast": "5.9768557312252964426877470355731225296442687747037",
      "median_contrast": "6.1695652173913043478260869565217391304347826086955",
      "mean_absolute_contrast": "6.013377470355731225296442687747035573122529644269",
      "minimum_contrast": "-0.5478260869565217391304347826086956521739130434783",
      "minimum_contrast_dates": [
        "2025-12-19"
      ],
      "maximum_contrast": "11.134782608695652173913043478260869565217391304348",
      "maximum_contrast_dates": [
        "2025-12-14"
      ],
      "positive_contrast_days": 29,
      "negative_contrast_days": 1,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 29,
      "contrast_below_minus_0_1_days": 1,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 685
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "19.658064516129032258064516129032258064516129032258",
      "town_mean_of_daily_values": "10.717956332258064516129032258064516129032258064516",
      "mean_contrast": "8.9401081838709677419354838709677419354838709677419",
      "median_contrast": "9.570284",
      "mean_absolute_contrast": "9.1665570290322580645161290322580645161290322580645",
      "minimum_contrast": "-3.2294422",
      "minimum_contrast_dates": [
        "2025-12-19"
      ],
      "maximum_contrast": "18.4965996",
      "maximum_contrast_dates": [
        "2025-12-15"
      ],
      "positive_contrast_days": 29,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 29,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 709
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "19.658064516129032258064516129032258064516129032258",
      "town_mean_of_daily_values": "10.645569106451612903225806451612903225806451612903",
      "mean_contrast": "9.0124954096774193548387096774193548387096774193548",
      "median_contrast": "9.884324",
      "mean_absolute_contrast": "9.2389442548387096774193548387096774193548387096774",
      "minimum_contrast": "-3.2294422",
      "minimum_contrast_dates": [
        "2025-12-19"
      ],
      "maximum_contrast": "18.4965996",
      "maximum_contrast_dates": [
        "2025-12-15"
      ],
      "positive_contrast_days": 29,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 29,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 708
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 30,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "excluded_dates": [
        "2025-12-31"
      ],
      "excluded_date_reasons": {
        "2025-12-31": [
          "outside_acquired_verified_coverage"
        ]
      },
      "exclusion_reason_counts": {
        "outside_acquired_verified_coverage": 1
      },
      "onsite_mean_of_daily_values": "19.923333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "10.798029213333333333333333333333333333333333333333",
      "mean_contrast": "9.12530412",
      "median_contrast": "10.01328895",
      "mean_absolute_contrast": "9.35930126",
      "minimum_contrast": "-3.2294422",
      "minimum_contrast_dates": [
        "2025-12-19"
      ],
      "maximum_contrast": "18.4965996",
      "maximum_contrast_dates": [
        "2025-12-15"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 685
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "19.658064516129032258064516129032258064516129032258",
      "town_mean_of_daily_values": "10.709677419354838709677419354838709677419354838710",
      "mean_contrast": "8.9483870967741935483870967741935483870967741935484",
      "median_contrast": "9.6",
      "mean_absolute_contrast": "9.1741935483870967741935483870967741935483870967742",
      "minimum_contrast": "-3.2",
      "minimum_contrast_dates": [
        "2025-12-19"
      ],
      "maximum_contrast": "18.5",
      "maximum_contrast_dates": [
        "2025-12-15"
      ],
      "positive_contrast_days": 29,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 29,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 709
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 31,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "excluded_dates": [],
      "excluded_date_reasons": {},
      "exclusion_reason_counts": {},
      "onsite_mean_of_daily_values": "19.658064516129032258064516129032258064516129032258",
      "town_mean_of_daily_values": "10.638709677419354838709677419354838709677419354839",
      "mean_contrast": "9.0193548387096774193548387096774193548387096774194",
      "median_contrast": "9.9",
      "mean_absolute_contrast": "9.2451612903225806451612903225806451612903225806452",
      "minimum_contrast": "-3.2",
      "minimum_contrast_dates": [
        "2025-12-19"
      ],
      "maximum_contrast": "18.5",
      "maximum_contrast_dates": [
        "2025-12-15"
      ],
      "positive_contrast_days": 29,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 29,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 708
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "unit": "ppb",
      "expected_count": 31,
      "pair_count": 30,
      "dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "excluded_dates": [
        "2025-12-31"
      ],
      "excluded_date_reasons": {
        "2025-12-31": [
          "outside_acquired_verified_coverage"
        ]
      },
      "exclusion_reason_counts": {
        "outside_acquired_verified_coverage": 1
      },
      "onsite_mean_of_daily_values": "19.923333333333333333333333333333333333333333333333",
      "town_mean_of_daily_values": "10.79",
      "mean_contrast": "9.1333333333333333333333333333333333333333333333333",
      "median_contrast": "10.0",
      "mean_absolute_contrast": "9.3666666666666666666666666666666666666666666666667",
      "minimum_contrast": "-3.2",
      "minimum_contrast_dates": [
        "2025-12-19"
      ],
      "maximum_contrast": "18.5",
      "maximum_contrast_dates": [
        "2025-12-15"
      ],
      "positive_contrast_days": 28,
      "negative_contrast_days": 2,
      "zero_contrast_days": 0,
      "contrast_above_0_1_days": 28,
      "contrast_below_minus_0_1_days": 2,
      "minimum_town_valid_hours": 20,
      "maximum_town_valid_hours": 23,
      "total_town_valid_hours": 685
    }
  ],
  "clock_sensitivity": [
    {
      "period": "2025",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "common_pair_count": 329,
      "ordinary_primary_mean_contrast": "2.5352969539162887305699870709232057266174179009629",
      "primary_mean_contrast_on_common_dates": "2.5354234197336634683528745696190209415919389280175",
      "mean_contrast_on_common_dates": "2.5373247905977263099601786281482747439498707121970",
      "town_mean_on_common_dates": "5.8392709540831247538696086058942784475394909899319",
      "max_absolute_town_change_from_primary": "2.844893137500000000000000000000000000000000000000",
      "max_change_dates": [
        "2025-09-04"
      ]
    },
    {
      "period": "2025",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "common_pair_count": 329,
      "ordinary_primary_mean_contrast": "2.5352969539162887305699870709232057266174179009629",
      "primary_mean_contrast_on_common_dates": "2.5354234197336634683528745696190209415919389280175",
      "mean_contrast_on_common_dates": "2.5354234197336634683528745696190209415919389280175",
      "town_mean_on_common_dates": "5.8411723249471875954769126644235322498974227741085",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ]
    },
    {
      "period": "2025",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "common_pair_count": 329,
      "ordinary_primary_mean_contrast": "2.5352969539162887305699870709232057266174179009629",
      "primary_mean_contrast_on_common_dates": "2.5354234197336634683528745696190209415919389280175",
      "mean_contrast_on_common_dates": "2.5325249747863351839237436672281879657395227077991",
      "town_mean_on_common_dates": "5.8440707698945158799060435668143652257498389943304",
      "max_absolute_town_change_from_primary": "2.375831762500000000000000000000000000000000000000",
      "max_change_dates": [
        "2025-09-04"
      ]
    },
    {
      "period": "2025",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "common_pair_count": 329,
      "ordinary_primary_mean_contrast": "2.5353164706742301916006929528876689267785585655358",
      "primary_mean_contrast_on_common_dates": "2.5354491448505449743512523033017145263533667475992",
      "mean_contrast_on_common_dates": "2.5373457088574843647075568229053236669409386122540",
      "town_mean_on_common_dates": "5.8392500358233666991222304111372295245484230898723",
      "max_absolute_town_change_from_primary": "2.841666666666666666666666666666666666666666666666",
      "max_change_dates": [
        "2025-09-04"
      ]
    },
    {
      "period": "2025",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "common_pair_count": 329,
      "ordinary_primary_mean_contrast": "2.5353164706742301916006929528876689267785585655358",
      "primary_mean_contrast_on_common_dates": "2.5354491448505449743512523033017145263533667475992",
      "mean_contrast_on_common_dates": "2.5354491448505449743512523033017145263533667475992",
      "town_mean_on_common_dates": "5.8411465998303060894785349307408386651359949545292",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ]
    },
    {
      "period": "2025",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "common_pair_count": 329,
      "ordinary_primary_mean_contrast": "2.5353164706742301916006929528876689267785585655358",
      "primary_mean_contrast_on_common_dates": "2.5354491448505449743512523033017145263533667475992",
      "mean_contrast_on_common_dates": "2.5325335398999438840020868635420741866319269586921",
      "town_mean_on_common_dates": "5.8440622047809071798277003705004790048574347434359",
      "max_absolute_town_change_from_primary": "2.379166666666666666666666666666666666666666666667",
      "max_change_dates": [
        "2025-09-04"
      ]
    },
    {
      "period": "2025",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 318,
      "ordinary_primary_mean_contrast": "4.0327309989625599801851388976486714698948295068897",
      "primary_mean_contrast_on_common_dates": "4.0290713225299093683446690657087444790911826013940",
      "mean_contrast_on_common_dates": "4.0328306568758945552909544101634253182113809893258",
      "town_mean_on_common_dates": "5.1857228022436023000549575395221092729835875641330",
      "max_absolute_town_change_from_primary": "0.5172155260869565217391304347826086956521739130435",
      "max_change_dates": [
        "2025-02-15"
      ]
    },
    {
      "period": "2025",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 318,
      "ordinary_primary_mean_contrast": "4.0327309989625599801851388976486714698948295068897",
      "primary_mean_contrast_on_common_dates": "4.0290713225299093683446690657087444790911826013940",
      "mean_contrast_on_common_dates": "4.0290713225299093683446690657087444790911826013940",
      "town_mean_on_common_dates": "5.1894821365895874870012428839767901121037859520660",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ]
    },
    {
      "period": "2025",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 318,
      "ordinary_primary_mean_contrast": "4.0327309989625599801851388976486714698948295068897",
      "primary_mean_contrast_on_common_dates": "4.0290713225299093683446690657087444790911826013940",
      "mean_contrast_on_common_dates": "4.0246084488548921275271605568224885180111638382003",
      "town_mean_on_common_dates": "5.1939450102646047278187513928630460731838047152591",
      "max_absolute_town_change_from_primary": "0.5088865652173913043478260869565217391304347826087",
      "max_change_dates": [
        "2025-02-13"
      ]
    },
    {
      "period": "2025",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 318,
      "ordinary_primary_mean_contrast": "4.0333920872783020656452361652393215559001087289564",
      "primary_mean_contrast_on_common_dates": "4.0297520967008467548167906528944480673680621869377",
      "mean_contrast_on_common_dates": "4.0334948277235959114979882649672382412764952378953",
      "town_mean_on_common_dates": "5.1850586313959009438479236847182963499184733155648",
      "max_absolute_town_change_from_primary": "0.5173913043478260869565217391304347826086956521739",
      "max_change_dates": [
        "2025-02-15"
      ]
    },
    {
      "period": "2025",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 318,
      "ordinary_primary_mean_contrast": "4.0333920872783020656452361652393215559001087289564",
      "primary_mean_contrast_on_common_dates": "4.0297520967008467548167906528944480673680621869377",
      "mean_contrast_on_common_dates": "4.0297520967008467548167906528944480673680621869377",
      "town_mean_on_common_dates": "5.1888013624186501005291212967910865238269063665220",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ]
    },
    {
      "period": "2025",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 318,
      "ordinary_primary_mean_contrast": "4.0333920872783020656452361652393215559001087289564",
      "primary_mean_contrast_on_common_dates": "4.0297520967008467548167906528944480673680621869377",
      "mean_contrast_on_common_dates": "4.0253392492592009020487928997924248561094983961013",
      "town_mean_on_common_dates": "5.1932142098602959532971190498931097350854701573582",
      "max_absolute_town_change_from_primary": "0.5086956521739130434782608695652173913043478260869",
      "max_change_dates": [
        "2025-02-13"
      ]
    },
    {
      "period": "2025",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 318,
      "ordinary_primary_mean_contrast": "8.9347961275862068965517241379310344827586206896552",
      "primary_mean_contrast_on_common_dates": "8.9451941213836477987421383647798742138364779874214",
      "mean_contrast_on_common_dates": "8.9116415981132075471698113207547169811320754716981",
      "town_mean_on_common_dates": "10.825150854716981132075471698113207547169811320755",
      "max_absolute_town_change_from_primary": "2.2896337",
      "max_change_dates": [
        "2025-02-15"
      ]
    },
    {
      "period": "2025",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 318,
      "ordinary_primary_mean_contrast": "8.9347961275862068965517241379310344827586206896552",
      "primary_mean_contrast_on_common_dates": "8.9451941213836477987421383647798742138364779874214",
      "mean_contrast_on_common_dates": "8.9451941213836477987421383647798742138364779874214",
      "town_mean_on_common_dates": "10.791598331446540880503144654088050314465408805031",
      "max_absolute_town_change_from_primary": "0.000000",
      "max_change_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ]
    },
    {
      "period": "2025",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 318,
      "ordinary_primary_mean_contrast": "8.9347961275862068965517241379310344827586206896552",
      "primary_mean_contrast_on_common_dates": "8.9451941213836477987421383647798742138364779874214",
      "mean_contrast_on_common_dates": "8.9596932034591194968553459119496855345911949685535",
      "town_mean_on_common_dates": "10.777099249371069182389937106918238993710691823899",
      "max_absolute_town_change_from_primary": "3.8457623",
      "max_change_dates": [
        "2025-02-15"
      ]
    },
    {
      "period": "2025",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 318,
      "ordinary_primary_mean_contrast": "8.9394984326018808777429467084639498432601880877743",
      "primary_mean_contrast_on_common_dates": "8.95",
      "mean_contrast_on_common_dates": "8.9163522012578616352201257861635220125786163522013",
      "town_mean_on_common_dates": "10.820440251572327044025157232704402515723270440252",
      "max_absolute_town_change_from_primary": "2.3",
      "max_change_dates": [
        "2025-02-15"
      ]
    },
    {
      "period": "2025",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 318,
      "ordinary_primary_mean_contrast": "8.9394984326018808777429467084639498432601880877743",
      "primary_mean_contrast_on_common_dates": "8.95",
      "mean_contrast_on_common_dates": "8.95",
      "town_mean_on_common_dates": "10.786792452830188679245283018867924528301886792453",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ]
    },
    {
      "period": "2025",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 318,
      "ordinary_primary_mean_contrast": "8.9394984326018808777429467084639498432601880877743",
      "primary_mean_contrast_on_common_dates": "8.95",
      "mean_contrast_on_common_dates": "8.9644654088050314465408805031446540880503144654088",
      "town_mean_on_common_dates": "10.772327044025157232704402515723270440251572327044",
      "max_absolute_town_change_from_primary": "3.8",
      "max_change_dates": [
        "2025-02-15"
      ]
    },
    {
      "period": "2025-01",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.6744123940000000000000000000000000000000000000000",
      "primary_mean_contrast_on_common_dates": "1.6744123940000000000000000000000000000000000000000",
      "mean_contrast_on_common_dates": "1.6863663585000000000000000000000000000000000000000",
      "town_mean_on_common_dates": "4.33763364150000000000000000000000000000000000000",
      "max_absolute_town_change_from_primary": "0.6121183000000000000000000000000000000000000000000",
      "max_change_dates": [
        "2025-01-30"
      ]
    },
    {
      "period": "2025-01",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.6744123940000000000000000000000000000000000000000",
      "primary_mean_contrast_on_common_dates": "1.6744123940000000000000000000000000000000000000000",
      "mean_contrast_on_common_dates": "1.6744123940000000000000000000000000000000000000000",
      "town_mean_on_common_dates": "4.34958760600000000000000000000000000000000000000",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ]
    },
    {
      "period": "2025-01",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.6744123940000000000000000000000000000000000000000",
      "primary_mean_contrast_on_common_dates": "1.6744123940000000000000000000000000000000000000000",
      "mean_contrast_on_common_dates": "1.665243531000000000000000000000000000000000000000",
      "town_mean_on_common_dates": "4.35875646900000000000000000000000000000000000000",
      "max_absolute_town_change_from_primary": "0.6164687416666666666666666666666666666666666666666",
      "max_change_dates": [
        "2025-01-02"
      ]
    },
    {
      "period": "2025-01",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.6743333333333333333333333333333333333333333333334",
      "primary_mean_contrast_on_common_dates": "1.6743333333333333333333333333333333333333333333334",
      "mean_contrast_on_common_dates": "1.686500000000000000000000000000000000000000000000",
      "town_mean_on_common_dates": "4.33750000000000000000000000000000000000000000000",
      "max_absolute_town_change_from_primary": "0.6125000000000000000000000000000000000000000000000",
      "max_change_dates": [
        "2025-01-30"
      ]
    },
    {
      "period": "2025-01",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.6743333333333333333333333333333333333333333333334",
      "primary_mean_contrast_on_common_dates": "1.6743333333333333333333333333333333333333333333334",
      "mean_contrast_on_common_dates": "1.6743333333333333333333333333333333333333333333334",
      "town_mean_on_common_dates": "4.3496666666666666666666666666666666666666666666664",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ]
    },
    {
      "period": "2025-01",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.6743333333333333333333333333333333333333333333334",
      "primary_mean_contrast_on_common_dates": "1.6743333333333333333333333333333333333333333333334",
      "mean_contrast_on_common_dates": "1.6651666666666666666666666666666666666666666666667",
      "town_mean_on_common_dates": "4.3588333333333333333333333333333333333333333333332",
      "max_absolute_town_change_from_primary": "0.6166666666666666666666666666666666666666666666667",
      "max_change_dates": [
        "2025-01-02"
      ]
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "0.28093346442028985507246376811594202898550724637685",
      "primary_mean_contrast_on_common_dates": "0.28093346442028985507246376811594202898550724637685",
      "mean_contrast_on_common_dates": "0.28476634811594202898550724637681159420289855072458",
      "town_mean_on_common_dates": "6.4272336518840579710144927536231884057971014492756",
      "max_absolute_town_change_from_primary": "0.2847773822463768115942028985507246376811594202898",
      "max_change_dates": [
        "2025-01-31"
      ]
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "0.28093346442028985507246376811594202898550724637685",
      "primary_mean_contrast_on_common_dates": "0.28093346442028985507246376811594202898550724637685",
      "mean_contrast_on_common_dates": "0.28093346442028985507246376811594202898550724637685",
      "town_mean_on_common_dates": "6.4310665355797101449275362318840579710144927536236",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ]
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "0.28093346442028985507246376811594202898550724637685",
      "primary_mean_contrast_on_common_dates": "0.28093346442028985507246376811594202898550724637685",
      "mean_contrast_on_common_dates": "0.27001225340579710144927536231884057971014492753614",
      "town_mean_on_common_dates": "6.441987746594202898550724637681159420289855072464",
      "max_absolute_town_change_from_primary": "0.295521043478260869565217391304347826086956521740",
      "max_change_dates": [
        "2025-01-30"
      ]
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "0.28253623188405797101449275362318840579710144927539",
      "primary_mean_contrast_on_common_dates": "0.28253623188405797101449275362318840579710144927539",
      "mean_contrast_on_common_dates": "0.28643478260869565217391304347826086956521739130443",
      "town_mean_on_common_dates": "6.4255652173913043478260869565217391304347826086952",
      "max_absolute_town_change_from_primary": "0.2846014492753623188405797101449275362318840579710",
      "max_change_dates": [
        "2025-01-31"
      ]
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "0.28253623188405797101449275362318840579710144927539",
      "primary_mean_contrast_on_common_dates": "0.28253623188405797101449275362318840579710144927539",
      "mean_contrast_on_common_dates": "0.28253623188405797101449275362318840579710144927539",
      "town_mean_on_common_dates": "6.4294637681159420289855072463768115942028985507248",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ]
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "0.28253623188405797101449275362318840579710144927539",
      "primary_mean_contrast_on_common_dates": "0.28253623188405797101449275362318840579710144927539",
      "mean_contrast_on_common_dates": "0.27175362318840579710144927536231884057971014492746",
      "town_mean_on_common_dates": "6.4402463768115942028985507246376811594202898550724",
      "max_absolute_town_change_from_primary": "0.295652173913043478260869565217391304347826086956",
      "max_change_dates": [
        "2025-01-30"
      ]
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.49920648",
      "primary_mean_contrast_on_common_dates": "1.49920648",
      "mean_contrast_on_common_dates": "1.49920648",
      "town_mean_on_common_dates": "13.50479352",
      "max_absolute_town_change_from_primary": "0.000000",
      "max_change_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ]
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.49920648",
      "primary_mean_contrast_on_common_dates": "1.49920648",
      "mean_contrast_on_common_dates": "1.49920648",
      "town_mean_on_common_dates": "13.50479352",
      "max_absolute_town_change_from_primary": "0.000000",
      "max_change_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ]
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.49920648",
      "primary_mean_contrast_on_common_dates": "1.49920648",
      "mean_contrast_on_common_dates": "1.48310852",
      "town_mean_on_common_dates": "13.52089148",
      "max_absolute_town_change_from_primary": "0.402449",
      "max_change_dates": [
        "2025-01-02"
      ]
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.5",
      "primary_mean_contrast_on_common_dates": "1.5",
      "mean_contrast_on_common_dates": "1.5",
      "town_mean_on_common_dates": "13.504",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ]
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.5",
      "primary_mean_contrast_on_common_dates": "1.5",
      "mean_contrast_on_common_dates": "1.5",
      "town_mean_on_common_dates": "13.504",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ]
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.5",
      "primary_mean_contrast_on_common_dates": "1.5",
      "mean_contrast_on_common_dates": "1.484",
      "town_mean_on_common_dates": "13.52",
      "max_absolute_town_change_from_primary": "0.4",
      "max_change_dates": [
        "2025-01-02"
      ]
    },
    {
      "period": "2025-02",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "2.2943943776841171251109139307897071872227151730257",
      "primary_mean_contrast_on_common_dates": "2.2943943776841171251109139307897071872227151730257",
      "mean_contrast_on_common_dates": "2.3000217084303830227743271221532091097308488612836",
      "town_mean_on_common_dates": "3.4142640058553312629399585921325051759834368530021",
      "max_absolute_town_change_from_primary": "0.5456084291666666666666666666666666666666666666667",
      "max_change_dates": [
        "2025-02-13"
      ]
    },
    {
      "period": "2025-02",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "2.2943943776841171251109139307897071872227151730257",
      "primary_mean_contrast_on_common_dates": "2.2943943776841171251109139307897071872227151730257",
      "mean_contrast_on_common_dates": "2.2943943776841171251109139307897071872227151730257",
      "town_mean_on_common_dates": "3.419891336601597160603371783496007098491570541260",
      "max_absolute_town_change_from_primary": "0E-10",
      "max_change_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28"
      ]
    },
    {
      "period": "2025-02",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "2.2943943776841171251109139307897071872227151730257",
      "primary_mean_contrast_on_common_dates": "2.2943943776841171251109139307897071872227151730257",
      "mean_contrast_on_common_dates": "2.2928417744574460218870156758355516119491274770779",
      "town_mean_on_common_dates": "3.4214439398282682638272700384501626737651582372079",
      "max_absolute_town_change_from_primary": "0.4718994458333333333333333333333333333333333333333",
      "max_change_dates": [
        "2025-02-13"
      ]
    },
    {
      "period": "2025-02",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "2.294809228039041703637976929902395740905057675244",
      "primary_mean_contrast_on_common_dates": "2.294809228039041703637976929902395740905057675244",
      "mean_contrast_on_common_dates": "2.3003133318544809228039041703637976929902395740905",
      "town_mean_on_common_dates": "3.4139723824312333629103815439219165927240461401952",
      "max_absolute_town_change_from_primary": "0.5458333333333333333333333333333333333333333333334",
      "max_change_dates": [
        "2025-02-13"
      ]
    },
    {
      "period": "2025-02",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "2.294809228039041703637976929902395740905057675244",
      "primary_mean_contrast_on_common_dates": "2.294809228039041703637976929902395740905057675244",
      "mean_contrast_on_common_dates": "2.294809228039041703637976929902395740905057675244",
      "town_mean_on_common_dates": "3.4194764862466725820763087843833185448092280390417",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28"
      ]
    },
    {
      "period": "2025-02",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "2.294809228039041703637976929902395740905057675244",
      "primary_mean_contrast_on_common_dates": "2.294809228039041703637976929902395740905057675244",
      "mean_contrast_on_common_dates": "2.2932407202011239278320023661638568470866607512569",
      "town_mean_on_common_dates": "3.4210449940845903578822833481218574386276249630288",
      "max_absolute_town_change_from_primary": "0.4708333333333333333333333333333333333333333333333",
      "max_change_dates": [
        "2025-02-13"
      ]
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "common_pair_count": 23,
      "ordinary_primary_mean_contrast": "3.4196491050524145042103454201752878501460732084550",
      "primary_mean_contrast_on_common_dates": "3.4196491050524145042103454201752878501460732084550",
      "mean_contrast_on_common_dates": "3.4327875685341123904450936587042447155868705963223",
      "town_mean_on_common_dates": "5.4454733010311050008592541673827118061522598384604",
      "max_absolute_town_change_from_primary": "0.5172155260869565217391304347826086956521739130435",
      "max_change_dates": [
        "2025-02-15"
      ]
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "common_pair_count": 23,
      "ordinary_primary_mean_contrast": "3.4196491050524145042103454201752878501460732084550",
      "primary_mean_contrast_on_common_dates": "3.4196491050524145042103454201752878501460732084550",
      "mean_contrast_on_common_dates": "3.4196491050524145042103454201752878501460732084550",
      "town_mean_on_common_dates": "5.4586117645128028870940024059116686715930572263274",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ]
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "common_pair_count": 23,
      "ordinary_primary_mean_contrast": "3.4196491050524145042103454201752878501460732084550",
      "primary_mean_contrast_on_common_dates": "3.4196491050524145042103454201752878501460732084550",
      "mean_contrast_on_common_dates": "3.3939396813770980122586927879933551011055736953657",
      "town_mean_on_common_dates": "5.4843211881881193790456550380936014206335567394170",
      "max_absolute_town_change_from_primary": "0.5088865652173913043478260869565217391304347826087",
      "max_change_dates": [
        "2025-02-13"
      ]
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "common_pair_count": 23,
      "ordinary_primary_mean_contrast": "3.4204932118920776765767313971472761642893968035745",
      "primary_mean_contrast_on_common_dates": "3.4204932118920776765767313971472761642893968035745",
      "mean_contrast_on_common_dates": "3.4334765423612304519676920433064100360886750300739",
      "town_mean_on_common_dates": "5.4447843272039869393366557827805464856504554047087",
      "max_absolute_town_change_from_primary": "0.5173913043478260869565217391304347826086956521739",
      "max_change_dates": [
        "2025-02-15"
      ]
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "common_pair_count": 23,
      "ordinary_primary_mean_contrast": "3.4204932118920776765767313971472761642893968035745",
      "primary_mean_contrast_on_common_dates": "3.4204932118920776765767313971472761642893968035745",
      "mean_contrast_on_common_dates": "3.4204932118920776765767313971472761642893968035745",
      "town_mean_on_common_dates": "5.4577676576731397147276164289396803574497336312083",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ]
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "common_pair_count": 23,
      "ordinary_primary_mean_contrast": "3.4204932118920776765767313971472761642893968035745",
      "primary_mean_contrast_on_common_dates": "3.4204932118920776765767313971472761642893968035745",
      "mean_contrast_on_common_dates": "3.3950249183708540986423784155353153462794294552329",
      "town_mean_on_common_dates": "5.4832359511943632926619694105516411754597009795496",
      "max_absolute_town_change_from_primary": "0.5086956521739130434782608695652173913043478260869",
      "max_change_dates": [
        "2025-02-13"
      ]
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "common_pair_count": 23,
      "ordinary_primary_mean_contrast": "6.0250224782608695652173913043478260869565217391304",
      "primary_mean_contrast_on_common_dates": "6.0250224782608695652173913043478260869565217391304",
      "mean_contrast_on_common_dates": "5.8912742695652173913043478260869565217391304347826",
      "town_mean_on_common_dates": "14.173943121739130434782608695652173913043478260870",
      "max_absolute_town_change_from_primary": "2.2896337",
      "max_change_dates": [
        "2025-02-15"
      ]
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "common_pair_count": 23,
      "ordinary_primary_mean_contrast": "6.0250224782608695652173913043478260869565217391304",
      "primary_mean_contrast_on_common_dates": "6.0250224782608695652173913043478260869565217391304",
      "mean_contrast_on_common_dates": "6.0250224782608695652173913043478260869565217391304",
      "town_mean_on_common_dates": "14.040194913043478260869565217391304347826086956522",
      "max_absolute_town_change_from_primary": "0.0000",
      "max_change_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ]
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "common_pair_count": 23,
      "ordinary_primary_mean_contrast": "6.0250224782608695652173913043478260869565217391304",
      "primary_mean_contrast_on_common_dates": "6.0250224782608695652173913043478260869565217391304",
      "mean_contrast_on_common_dates": "6.1922295347826086956521739130434782608695652173913",
      "town_mean_on_common_dates": "13.872987856521739130434782608695652173913043478261",
      "max_absolute_town_change_from_primary": "3.8457623",
      "max_change_dates": [
        "2025-02-15"
      ]
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "common_pair_count": 23,
      "ordinary_primary_mean_contrast": "6.0217391304347826086956521739130434782608695652174",
      "primary_mean_contrast_on_common_dates": "6.0217391304347826086956521739130434782608695652174",
      "mean_contrast_on_common_dates": "5.8869565217391304347826086956521739130434782608696",
      "town_mean_on_common_dates": "14.178260869565217391304347826086956521739130434783",
      "max_absolute_town_change_from_primary": "2.3",
      "max_change_dates": [
        "2025-02-15"
      ]
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "common_pair_count": 23,
      "ordinary_primary_mean_contrast": "6.0217391304347826086956521739130434782608695652174",
      "primary_mean_contrast_on_common_dates": "6.0217391304347826086956521739130434782608695652174",
      "mean_contrast_on_common_dates": "6.0217391304347826086956521739130434782608695652174",
      "town_mean_on_common_dates": "14.043478260869565217391304347826086956521739130435",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ]
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "common_pair_count": 23,
      "ordinary_primary_mean_contrast": "6.0217391304347826086956521739130434782608695652174",
      "primary_mean_contrast_on_common_dates": "6.0217391304347826086956521739130434782608695652174",
      "mean_contrast_on_common_dates": "6.1869565217391304347826086956521739130434782608696",
      "town_mean_on_common_dates": "13.878260869565217391304347826086956521739130434783",
      "max_absolute_town_change_from_primary": "3.8",
      "max_change_dates": [
        "2025-02-15"
      ]
    },
    {
      "period": "2025-03",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "1.963830331994047619047619047619047619047619047619",
      "primary_mean_contrast_on_common_dates": "1.963830331994047619047619047619047619047619047619",
      "mean_contrast_on_common_dates": "1.9520842306547619047619047619047619047619047619047",
      "town_mean_on_common_dates": "2.9622014836309523809523809523809523809523809523810",
      "max_absolute_town_change_from_primary": "0.3056572916666666666666666666666666666666666666667",
      "max_change_dates": [
        "2025-03-19"
      ]
    },
    {
      "period": "2025-03",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "1.963830331994047619047619047619047619047619047619",
      "primary_mean_contrast_on_common_dates": "1.963830331994047619047619047619047619047619047619",
      "mean_contrast_on_common_dates": "1.963830331994047619047619047619047619047619047619",
      "town_mean_on_common_dates": "2.9504553822916666666666666666666666666666666666668",
      "max_absolute_town_change_from_primary": "0E-9",
      "max_change_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ]
    },
    {
      "period": "2025-03",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "1.963830331994047619047619047619047619047619047619",
      "primary_mean_contrast_on_common_dates": "1.963830331994047619047619047619047619047619047619",
      "mean_contrast_on_common_dates": "1.9568098985119047619047619047619047619047619047620",
      "town_mean_on_common_dates": "2.9574758157738095238095238095238095238095238095238",
      "max_absolute_town_change_from_primary": "0.3213433833333333333333333333333333333333333333333",
      "max_change_dates": [
        "2025-03-01"
      ]
    },
    {
      "period": "2025-03",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "1.9632440476190476190476190476190476190476190476191",
      "primary_mean_contrast_on_common_dates": "1.9632440476190476190476190476190476190476190476191",
      "mean_contrast_on_common_dates": "1.9514880952380952380952380952380952380952380952381",
      "town_mean_on_common_dates": "2.9627976190476190476190476190476190476190476190476",
      "max_absolute_town_change_from_primary": "0.3041666666666666666666666666666666666666666666667",
      "max_change_dates": [
        "2025-03-19"
      ]
    },
    {
      "period": "2025-03",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "1.9632440476190476190476190476190476190476190476191",
      "primary_mean_contrast_on_common_dates": "1.9632440476190476190476190476190476190476190476191",
      "mean_contrast_on_common_dates": "1.9632440476190476190476190476190476190476190476191",
      "town_mean_on_common_dates": "2.9510416666666666666666666666666666666666666666667",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ]
    },
    {
      "period": "2025-03",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "1.9632440476190476190476190476190476190476190476191",
      "primary_mean_contrast_on_common_dates": "1.9632440476190476190476190476190476190476190476191",
      "mean_contrast_on_common_dates": "1.9562500000000000000000000000000000000000000000001",
      "town_mean_on_common_dates": "2.9580357142857142857142857142857142857142857142856",
      "max_absolute_town_change_from_primary": "0.3208333333333333333333333333333333333333333333333",
      "max_change_dates": [
        "2025-03-01"
      ]
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 24,
      "ordinary_primary_mean_contrast": "3.7120297817770092226613965744400527009222661396574",
      "primary_mean_contrast_on_common_dates": "3.7120297817770092226613965744400527009222661396574",
      "mean_contrast_on_common_dates": "3.7091508581274703557312252964426877470355731225297",
      "town_mean_on_common_dates": "4.9075158085391963109354413702239789196310935441367",
      "max_absolute_town_change_from_primary": "0.2046070347826086956521739130434782608695652173913",
      "max_change_dates": [
        "2025-03-15"
      ]
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 24,
      "ordinary_primary_mean_contrast": "3.7120297817770092226613965744400527009222661396574",
      "primary_mean_contrast_on_common_dates": "3.7120297817770092226613965744400527009222661396574",
      "mean_contrast_on_common_dates": "3.7120297817770092226613965744400527009222661396574",
      "town_mean_on_common_dates": "4.9046368848896574440052700922266139657444005270092",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ]
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 24,
      "ordinary_primary_mean_contrast": "3.7120297817770092226613965744400527009222661396574",
      "primary_mean_contrast_on_common_dates": "3.7120297817770092226613965744400527009222661396574",
      "mean_contrast_on_common_dates": "3.7079922295780005019135453918062613714787627831106",
      "town_mean_on_common_dates": "4.9086744370886661647531212748604052951879038835558",
      "max_absolute_town_change_from_primary": "0.2822490926877470355731225296442687747035573122530",
      "max_change_dates": [
        "2025-03-07"
      ]
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 24,
      "ordinary_primary_mean_contrast": "3.7123929512516469038208168642951251646903820816864",
      "primary_mean_contrast_on_common_dates": "3.7123929512516469038208168642951251646903820816864",
      "mean_contrast_on_common_dates": "3.7095273386034255599472990777338603425559947299078",
      "town_mean_on_common_dates": "4.9071393280632411067193675889328063241106719367592",
      "max_absolute_town_change_from_primary": "0.2043478260869565217391304347826086956521739130435",
      "max_change_dates": [
        "2025-03-15"
      ]
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 24,
      "ordinary_primary_mean_contrast": "3.7123929512516469038208168642951251646903820816864",
      "primary_mean_contrast_on_common_dates": "3.7123929512516469038208168642951251646903820816864",
      "mean_contrast_on_common_dates": "3.7123929512516469038208168642951251646903820816864",
      "town_mean_on_common_dates": "4.90427371541501976284584980237154150197628458498",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ]
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 24,
      "ordinary_primary_mean_contrast": "3.7123929512516469038208168642951251646903820816864",
      "primary_mean_contrast_on_common_dates": "3.7123929512516469038208168642951251646903820816864",
      "mean_contrast_on_common_dates": "3.7084254815233076102641320032624380450467406989146",
      "town_mean_on_common_dates": "4.9082411851433590564025346634042286216199259677521",
      "max_absolute_town_change_from_primary": "0.2804347826086956521739130434782608695652173913043",
      "max_change_dates": [
        "2025-03-07"
      ]
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 24,
      "ordinary_primary_mean_contrast": "11.5378367875",
      "primary_mean_contrast_on_common_dates": "11.5378367875",
      "mean_contrast_on_common_dates": "11.5378367875",
      "town_mean_on_common_dates": "10.932996545833333333333333333333333333333333333333",
      "max_absolute_town_change_from_primary": "0E-7",
      "max_change_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ]
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 24,
      "ordinary_primary_mean_contrast": "11.5378367875",
      "primary_mean_contrast_on_common_dates": "11.5378367875",
      "mean_contrast_on_common_dates": "11.5378367875",
      "town_mean_on_common_dates": "10.932996545833333333333333333333333333333333333333",
      "max_absolute_town_change_from_primary": "0E-7",
      "max_change_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ]
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 24,
      "ordinary_primary_mean_contrast": "11.5378367875",
      "primary_mean_contrast_on_common_dates": "11.5378367875",
      "mean_contrast_on_common_dates": "11.512044445833333333333333333333333333333333333333",
      "town_mean_on_common_dates": "10.9587888875",
      "max_absolute_town_change_from_primary": "0.7916932",
      "max_change_dates": [
        "2025-03-15"
      ]
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 24,
      "ordinary_primary_mean_contrast": "11.545833333333333333333333333333333333333333333333",
      "primary_mean_contrast_on_common_dates": "11.545833333333333333333333333333333333333333333333",
      "mean_contrast_on_common_dates": "11.545833333333333333333333333333333333333333333333",
      "town_mean_on_common_dates": "10.925",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ]
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 24,
      "ordinary_primary_mean_contrast": "11.545833333333333333333333333333333333333333333333",
      "primary_mean_contrast_on_common_dates": "11.545833333333333333333333333333333333333333333333",
      "mean_contrast_on_common_dates": "11.545833333333333333333333333333333333333333333333",
      "town_mean_on_common_dates": "10.925",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ]
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 24,
      "ordinary_primary_mean_contrast": "11.545833333333333333333333333333333333333333333333",
      "primary_mean_contrast_on_common_dates": "11.545833333333333333333333333333333333333333333333",
      "mean_contrast_on_common_dates": "11.520833333333333333333333333333333333333333333333",
      "town_mean_on_common_dates": "10.95",
      "max_absolute_town_change_from_primary": "0.8",
      "max_change_dates": [
        "2025-03-15"
      ]
    },
    {
      "period": "2025-04",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "2.0040028307368421052631578947368421052631578947369",
      "primary_mean_contrast_on_common_dates": "2.0040028307368421052631578947368421052631578947369",
      "mean_contrast_on_common_dates": "2.0163354069521531100478468899521531100478468899521",
      "town_mean_on_common_dates": "4.827664593047846889952153110047846889952153110048",
      "max_absolute_town_change_from_primary": "0.4102785909090909090909090909090909090909090909091",
      "max_change_dates": [
        "2025-04-22"
      ]
    },
    {
      "period": "2025-04",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "2.0040028307368421052631578947368421052631578947369",
      "primary_mean_contrast_on_common_dates": "2.0040028307368421052631578947368421052631578947369",
      "mean_contrast_on_common_dates": "2.0040028307368421052631578947368421052631578947369",
      "town_mean_on_common_dates": "4.8399971692631578947368421052631578947368421052632",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ]
    },
    {
      "period": "2025-04",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "2.0040028307368421052631578947368421052631578947369",
      "primary_mean_contrast_on_common_dates": "2.0040028307368421052631578947368421052631578947369",
      "mean_contrast_on_common_dates": "1.9997069666602870813397129186602870813397129186604",
      "town_mean_on_common_dates": "4.8442930333397129186602870813397129186602870813396",
      "max_absolute_town_change_from_primary": "0.4139162545454545454545454545454545454545454545455",
      "max_change_dates": [
        "2025-04-22"
      ]
    },
    {
      "period": "2025-04",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "2.0032575757575757575757575757575757575757575757576",
      "primary_mean_contrast_on_common_dates": "2.0032575757575757575757575757575757575757575757576",
      "mean_contrast_on_common_dates": "2.0156275917065390749601275917065390749601275917066",
      "town_mean_on_common_dates": "4.8283724082934609250398724082934609250398724082932",
      "max_absolute_town_change_from_primary": "0.4136363636363636363636363636363636363636363636364",
      "max_change_dates": [
        "2025-04-22"
      ]
    },
    {
      "period": "2025-04",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "2.0032575757575757575757575757575757575757575757576",
      "primary_mean_contrast_on_common_dates": "2.0032575757575757575757575757575757575757575757576",
      "mean_contrast_on_common_dates": "2.0032575757575757575757575757575757575757575757576",
      "town_mean_on_common_dates": "4.8407424242424242424242424242424242424242424242428",
      "max_absolute_town_change_from_primary": "0.000",
      "max_change_dates": [
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ]
    },
    {
      "period": "2025-04",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "2.0032575757575757575757575757575757575757575757576",
      "primary_mean_contrast_on_common_dates": "2.0032575757575757575757575757575757575757575757576",
      "mean_contrast_on_common_dates": "1.9988787878787878787878787878787878787878787878788",
      "town_mean_on_common_dates": "4.8451212121212121212121212121212121212121212121212",
      "max_absolute_town_change_from_primary": "0.4136363636363636363636363636363636363636363636363",
      "max_change_dates": [
        "2025-04-22"
      ]
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "4.2466056605660643704121964991530208921513269339357",
      "primary_mean_contrast_on_common_dates": "4.2466056605660643704121964991530208921513269339357",
      "mean_contrast_on_common_dates": "4.2474024165866741953698475437605872388481084133257",
      "town_mean_on_common_dates": "4.2597404405561829474872953133822699040090344438171",
      "max_absolute_town_change_from_primary": "0.1521316913043478260869565217391304347826086956522",
      "max_change_dates": [
        "2025-04-13"
      ]
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "4.2466056605660643704121964991530208921513269339357",
      "primary_mean_contrast_on_common_dates": "4.2466056605660643704121964991530208921513269339357",
      "mean_contrast_on_common_dates": "4.2466056605660643704121964991530208921513269339357",
      "town_mean_on_common_dates": "4.2605371965767927724449463579898362507058159232071",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ]
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "4.2466056605660643704121964991530208921513269339357",
      "primary_mean_contrast_on_common_dates": "4.2466056605660643704121964991530208921513269339357",
      "mean_contrast_on_common_dates": "4.2467259626411631846414455110107284020327498588364",
      "town_mean_on_common_dates": "4.2604168945016939582156973461321287408243929983064",
      "max_absolute_town_change_from_primary": "0.1174810434782608695652173913043478260869565217391",
      "max_change_dates": [
        "2025-04-05"
      ]
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "4.2479107848673066064370412196499153020892151326936",
      "primary_mean_contrast_on_common_dates": "4.2479107848673066064370412196499153020892151326936",
      "mean_contrast_on_common_dates": "4.2486801242236024844720496894409937888198757763979",
      "town_mean_on_common_dates": "4.2584627329192546583850931677018633540372670807454",
      "max_absolute_town_change_from_primary": "0.1521739130434782608695652173913043478260869565217",
      "max_change_dates": [
        "2025-04-13",
        "2025-04-25"
      ]
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "4.2479107848673066064370412196499153020892151326936",
      "primary_mean_contrast_on_common_dates": "4.2479107848673066064370412196499153020892151326936",
      "mean_contrast_on_common_dates": "4.2479107848673066064370412196499153020892151326936",
      "town_mean_on_common_dates": "4.2592320722755505364201016374929418407679277244493",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ]
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "4.2479107848673066064370412196499153020892151326936",
      "primary_mean_contrast_on_common_dates": "4.2479107848673066064370412196499153020892151326936",
      "mean_contrast_on_common_dates": "4.2480872388481084133258046301524562394127611518918",
      "town_mean_on_common_dates": "4.2590556182947487295313382269904009034443817052507",
      "max_absolute_town_change_from_primary": "0.1173913043478260869565217391304347826086956521739",
      "max_change_dates": [
        "2025-04-05"
      ]
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "9.9899590107142857142857142857142857142857142857143",
      "primary_mean_contrast_on_common_dates": "9.9899590107142857142857142857142857142857142857143",
      "mean_contrast_on_common_dates": "9.9602196428571428571428571428571428571428571428571",
      "town_mean_on_common_dates": "9.2612089285714285714285714285714285714285714285714",
      "max_absolute_town_change_from_primary": "0.5265642",
      "max_change_dates": [
        "2025-04-26"
      ]
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "9.9899590107142857142857142857142857142857142857143",
      "primary_mean_contrast_on_common_dates": "9.9899590107142857142857142857142857142857142857143",
      "mean_contrast_on_common_dates": "9.9899590107142857142857142857142857142857142857143",
      "town_mean_on_common_dates": "9.2314695607142857142857142857142857142857142857143",
      "max_absolute_town_change_from_primary": "0E-7",
      "max_change_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ]
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "9.9899590107142857142857142857142857142857142857143",
      "primary_mean_contrast_on_common_dates": "9.9899590107142857142857142857142857142857142857143",
      "mean_contrast_on_common_dates": "9.9899590107142857142857142857142857142857142857143",
      "town_mean_on_common_dates": "9.2314695607142857142857142857142857142857142857143",
      "max_absolute_town_change_from_primary": "0E-7",
      "max_change_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ]
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "9.9892857142857142857142857142857142857142857142857",
      "primary_mean_contrast_on_common_dates": "9.9892857142857142857142857142857142857142857142857",
      "mean_contrast_on_common_dates": "9.9607142857142857142857142857142857142857142857143",
      "town_mean_on_common_dates": "9.2607142857142857142857142857142857142857142857143",
      "max_absolute_town_change_from_primary": "0.5",
      "max_change_dates": [
        "2025-04-26"
      ]
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "9.9892857142857142857142857142857142857142857142857",
      "primary_mean_contrast_on_common_dates": "9.9892857142857142857142857142857142857142857142857",
      "mean_contrast_on_common_dates": "9.9892857142857142857142857142857142857142857142857",
      "town_mean_on_common_dates": "9.2321428571428571428571428571428571428571428571429",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ]
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 28,
      "ordinary_primary_mean_contrast": "9.9892857142857142857142857142857142857142857142857",
      "primary_mean_contrast_on_common_dates": "9.9892857142857142857142857142857142857142857142857",
      "mean_contrast_on_common_dates": "9.9892857142857142857142857142857142857142857142857",
      "town_mean_on_common_dates": "9.2321428571428571428571428571428571428571428571429",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ]
    },
    {
      "period": "2025-05",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "1.6939838036290322580645161290322580645161290322581",
      "primary_mean_contrast_on_common_dates": "1.6939838036290322580645161290322580645161290322581",
      "mean_contrast_on_common_dates": "1.6910979620967741935483870967741935483870967741935",
      "town_mean_on_common_dates": "4.2830955862903225806451612903225806451612903225813",
      "max_absolute_town_change_from_primary": "0.3003156208333333333333333333333333333333333333333",
      "max_change_dates": [
        "2025-05-10"
      ]
    },
    {
      "period": "2025-05",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "1.6939838036290322580645161290322580645161290322581",
      "primary_mean_contrast_on_common_dates": "1.6939838036290322580645161290322580645161290322581",
      "mean_contrast_on_common_dates": "1.6939838036290322580645161290322580645161290322581",
      "town_mean_on_common_dates": "4.2802097447580645161290322580645161290322580645158",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ]
    },
    {
      "period": "2025-05",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "1.6939838036290322580645161290322580645161290322581",
      "primary_mean_contrast_on_common_dates": "1.6939838036290322580645161290322580645161290322581",
      "mean_contrast_on_common_dates": "1.6965569944892473118279569892473118279569892473119",
      "town_mean_on_common_dates": "4.2776365538978494623655913978494623655913978494623",
      "max_absolute_town_change_from_primary": "0.3366690958333333333333333333333333333333333333333",
      "max_change_dates": [
        "2025-05-25"
      ]
    },
    {
      "period": "2025-05",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "1.6944892473118279569892473118279569892473118279569",
      "primary_mean_contrast_on_common_dates": "1.6944892473118279569892473118279569892473118279569",
      "mean_contrast_on_common_dates": "1.6915322580645161290322580645161290322580645161290",
      "town_mean_on_common_dates": "4.2826612903225806451612903225806451612903225806452",
      "max_absolute_town_change_from_primary": "0.3000000000000000000000000000000000000000000000000",
      "max_change_dates": [
        "2025-05-10"
      ]
    },
    {
      "period": "2025-05",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "1.6944892473118279569892473118279569892473118279569",
      "primary_mean_contrast_on_common_dates": "1.6944892473118279569892473118279569892473118279569",
      "mean_contrast_on_common_dates": "1.6944892473118279569892473118279569892473118279569",
      "town_mean_on_common_dates": "4.2797043010752688172043010752688172043010752688174",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ]
    },
    {
      "period": "2025-05",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "1.6944892473118279569892473118279569892473118279569",
      "primary_mean_contrast_on_common_dates": "1.6944892473118279569892473118279569892473118279569",
      "mean_contrast_on_common_dates": "1.6971774193548387096774193548387096774193548387096",
      "town_mean_on_common_dates": "4.2770161290322580645161290322580645161290322580645",
      "max_absolute_town_change_from_primary": "0.3375000000000000000000000000000000000000000000000",
      "max_change_dates": [
        "2025-05-25"
      ]
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "6.0255313009562667346678566874920311105444345276042",
      "primary_mean_contrast_on_common_dates": "6.0255313009562667346678566874920311105444345276042",
      "mean_contrast_on_common_dates": "6.0226891289302562794848909855922478643376259084532",
      "town_mean_on_common_dates": "3.7224721613923243656763993369883972969526966721916",
      "max_absolute_town_change_from_primary": "0.3035911739130434782608695652173913043478260869566",
      "max_change_dates": [
        "2025-05-07"
      ]
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "6.0255313009562667346678566874920311105444345276042",
      "primary_mean_contrast_on_common_dates": "6.0255313009562667346678566874920311105444345276042",
      "mean_contrast_on_common_dates": "6.0255313009562667346678566874920311105444345276042",
      "town_mean_on_common_dates": "3.7196299893663139104934336350886140507458880530410",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ]
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "6.0255313009562667346678566874920311105444345276042",
      "primary_mean_contrast_on_common_dates": "6.0255313009562667346678566874920311105444345276042",
      "mean_contrast_on_common_dates": "6.0291759284839984699732245314293000127502231289048",
      "town_mean_on_common_dates": "3.7159853618385821751880657911513451485400994517403",
      "max_absolute_town_change_from_primary": "0.2296245304347826086956521739130434782608695652174",
      "max_change_dates": [
        "2025-05-28"
      ]
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "6.0271452250414382251689404564579880147902588295294",
      "primary_mean_contrast_on_common_dates": "6.0271452250414382251689404564579880147902588295294",
      "mean_contrast_on_common_dates": "6.0242955501721280122402142037485655998979982149684",
      "town_mean_on_common_dates": "3.7208657401504526329210761188320795613923243656765",
      "max_absolute_town_change_from_primary": "0.3043478260869565217391304347826086956521739130435",
      "max_change_dates": [
        "2025-05-07"
      ]
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "6.0271452250414382251689404564579880147902588295294",
      "primary_mean_contrast_on_common_dates": "6.0271452250414382251689404564579880147902588295294",
      "mean_contrast_on_common_dates": "6.0271452250414382251689404564579880147902588295294",
      "town_mean_on_common_dates": "3.7180160652811424199923498661226571465000637511155",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ]
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "6.0271452250414382251689404564579880147902588295294",
      "primary_mean_contrast_on_common_dates": "6.0271452250414382251689404564579880147902588295294",
      "mean_contrast_on_common_dates": "6.0307280377406604615580772663521611628203493561142",
      "town_mean_on_common_dates": "3.7144332525819201836032130562284839984699732245313",
      "max_absolute_town_change_from_primary": "0.2304347826086956521739130434782608695652173913044",
      "max_change_dates": [
        "2025-05-28"
      ]
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "15.773495606451612903225806451612903225806451612903",
      "primary_mean_contrast_on_common_dates": "15.773495606451612903225806451612903225806451612903",
      "mean_contrast_on_common_dates": "15.725293829032258064516129032258064516129032258065",
      "town_mean_on_common_dates": "7.5101900419354838709677419354838709677419354838710",
      "max_absolute_town_change_from_primary": "1.2626100",
      "max_change_dates": [
        "2025-05-25"
      ]
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "15.773495606451612903225806451612903225806451612903",
      "primary_mean_contrast_on_common_dates": "15.773495606451612903225806451612903225806451612903",
      "mean_contrast_on_common_dates": "15.773495606451612903225806451612903225806451612903",
      "town_mean_on_common_dates": "7.4619882645161290322580645161290322580645161290323",
      "max_absolute_town_change_from_primary": "0.000000",
      "max_change_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ]
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "15.773495606451612903225806451612903225806451612903",
      "primary_mean_contrast_on_common_dates": "15.773495606451612903225806451612903225806451612903",
      "mean_contrast_on_common_dates": "15.773495606451612903225806451612903225806451612903",
      "town_mean_on_common_dates": "7.4619882645161290322580645161290322580645161290323",
      "max_absolute_town_change_from_primary": "0.000000",
      "max_change_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ]
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "15.783870967741935483870967741935483870967741935484",
      "primary_mean_contrast_on_common_dates": "15.783870967741935483870967741935483870967741935484",
      "mean_contrast_on_common_dates": "15.735483870967741935483870967741935483870967741935",
      "town_mean_on_common_dates": "7.5",
      "max_absolute_town_change_from_primary": "1.3",
      "max_change_dates": [
        "2025-05-25"
      ]
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "15.783870967741935483870967741935483870967741935484",
      "primary_mean_contrast_on_common_dates": "15.783870967741935483870967741935483870967741935484",
      "mean_contrast_on_common_dates": "15.783870967741935483870967741935483870967741935484",
      "town_mean_on_common_dates": "7.4516129032258064516129032258064516129032258064516",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ]
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "15.783870967741935483870967741935483870967741935484",
      "primary_mean_contrast_on_common_dates": "15.783870967741935483870967741935483870967741935484",
      "mean_contrast_on_common_dates": "15.783870967741935483870967741935483870967741935484",
      "town_mean_on_common_dates": "7.4516129032258064516129032258064516129032258064516",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ]
    },
    {
      "period": "2025-06",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "2.639203395216049382716049382716049382716049382716",
      "primary_mean_contrast_on_common_dates": "2.639203395216049382716049382716049382716049382716",
      "mean_contrast_on_common_dates": "2.6479762683641975308641975308641975308641975308642",
      "town_mean_on_common_dates": "5.4742459538580246913580246913580246913580246913581",
      "max_absolute_town_change_from_primary": "0.1944776000000000000000000000000000000000000000000",
      "max_change_dates": [
        "2025-06-25"
      ]
    },
    {
      "period": "2025-06",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "2.639203395216049382716049382716049382716049382716",
      "primary_mean_contrast_on_common_dates": "2.639203395216049382716049382716049382716049382716",
      "mean_contrast_on_common_dates": "2.639203395216049382716049382716049382716049382716",
      "town_mean_on_common_dates": "5.4830188270061728395061728395061728395061728395063",
      "max_absolute_town_change_from_primary": "0E-7",
      "max_change_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ]
    },
    {
      "period": "2025-06",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "2.639203395216049382716049382716049382716049382716",
      "primary_mean_contrast_on_common_dates": "2.639203395216049382716049382716049382716049382716",
      "mean_contrast_on_common_dates": "2.6274234104938271604938271604938271604938271604939",
      "town_mean_on_common_dates": "5.4947988117283950617283950617283950617283950617281",
      "max_absolute_town_change_from_primary": "0.2075235041666666666666666666666666666666666666667",
      "max_change_dates": [
        "2025-06-25"
      ]
    },
    {
      "period": "2025-06",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "2.6388888888888888888888888888888888888888888888888",
      "primary_mean_contrast_on_common_dates": "2.6388888888888888888888888888888888888888888888888",
      "mean_contrast_on_common_dates": "2.6478395061728395061728395061728395061728395061728",
      "town_mean_on_common_dates": "5.4743827160493827160493827160493827160493827160496",
      "max_absolute_town_change_from_primary": "0.1916666666666666666666666666666666666666666666666",
      "max_change_dates": [
        "2025-06-25"
      ]
    },
    {
      "period": "2025-06",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "2.6388888888888888888888888888888888888888888888888",
      "primary_mean_contrast_on_common_dates": "2.6388888888888888888888888888888888888888888888888",
      "mean_contrast_on_common_dates": "2.6388888888888888888888888888888888888888888888888",
      "town_mean_on_common_dates": "5.4833333333333333333333333333333333333333333333333",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ]
    },
    {
      "period": "2025-06",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "2.6388888888888888888888888888888888888888888888888",
      "primary_mean_contrast_on_common_dates": "2.6388888888888888888888888888888888888888888888888",
      "mean_contrast_on_common_dates": "2.6271604938271604938271604938271604938271604938273",
      "town_mean_on_common_dates": "5.4950617283950617283950617283950617283950617283941",
      "max_absolute_town_change_from_primary": "0.2083333333333333333333333333333333333333333333334",
      "max_change_dates": [
        "2025-06-25"
      ]
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 26,
      "ordinary_primary_mean_contrast": "6.4367415527515962298570994223168136211614472484031",
      "primary_mean_contrast_on_common_dates": "6.4367415527515962298570994223168136211614472484031",
      "mean_contrast_on_common_dates": "6.4344071168896321070234113712374581939799331103685",
      "town_mean_on_common_dates": "4.32713134464882943143812709030100334448160535117",
      "max_absolute_town_change_from_primary": "0.1901475652173913043478260869565217391304347826087",
      "max_change_dates": [
        "2025-06-22"
      ]
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 26,
      "ordinary_primary_mean_contrast": "6.4367415527515962298570994223168136211614472484031",
      "primary_mean_contrast_on_common_dates": "6.4367415527515962298570994223168136211614472484031",
      "mean_contrast_on_common_dates": "6.4367415527515962298570994223168136211614472484031",
      "town_mean_on_common_dates": "4.324796908786865308604439039221647917300091213135",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ]
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 26,
      "ordinary_primary_mean_contrast": "6.4367415527515962298570994223168136211614472484031",
      "primary_mean_contrast_on_common_dates": "6.4367415527515962298570994223168136211614472484031",
      "mean_contrast_on_common_dates": "6.4402454081027667984189723320158102766798418972331",
      "town_mean_on_common_dates": "4.3212930534356947400425661295226512617816965643054",
      "max_absolute_town_change_from_primary": "0.1733982173913043478260869565217391304347826086956",
      "max_change_dates": [
        "2025-06-22"
      ]
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 26,
      "ordinary_primary_mean_contrast": "6.4380434782608695652173913043478260869565217391308",
      "primary_mean_contrast_on_common_dates": "6.4380434782608695652173913043478260869565217391308",
      "mean_contrast_on_common_dates": "6.4356187290969899665551839464882943143812709030096",
      "town_mean_on_common_dates": "4.3259197324414715719063545150501672240802675585285",
      "max_absolute_town_change_from_primary": "0.1913043478260869565217391304347826086956521739130",
      "max_change_dates": [
        "2025-06-22"
      ]
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 26,
      "ordinary_primary_mean_contrast": "6.4380434782608695652173913043478260869565217391308",
      "primary_mean_contrast_on_common_dates": "6.4380434782608695652173913043478260869565217391308",
      "mean_contrast_on_common_dates": "6.4380434782608695652173913043478260869565217391308",
      "town_mean_on_common_dates": "4.3234949832775919732441471571906354515050167224081",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ]
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 26,
      "ordinary_primary_mean_contrast": "6.4380434782608695652173913043478260869565217391308",
      "primary_mean_contrast_on_common_dates": "6.4380434782608695652173913043478260869565217391308",
      "mean_contrast_on_common_dates": "6.4414943751900273639404074186682882335056248099727",
      "town_mean_on_common_dates": "4.3200440863484341745211310428701733049559136515658",
      "max_absolute_town_change_from_primary": "0.1739130434782608695652173913043478260869565217392",
      "max_change_dates": [
        "2025-06-22"
      ]
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 26,
      "ordinary_primary_mean_contrast": "13.379562115384615384615384615384615384615384615385",
      "primary_mean_contrast_on_common_dates": "13.379562115384615384615384615384615384615384615385",
      "mean_contrast_on_common_dates": "13.337701846153846153846153846153846153846153846154",
      "town_mean_on_common_dates": "8.2853750769230769230769230769230769230769230769231",
      "max_absolute_town_change_from_primary": "0.651479",
      "max_change_dates": [
        "2025-06-06"
      ]
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 26,
      "ordinary_primary_mean_contrast": "13.379562115384615384615384615384615384615384615385",
      "primary_mean_contrast_on_common_dates": "13.379562115384615384615384615384615384615384615385",
      "mean_contrast_on_common_dates": "13.379562115384615384615384615384615384615384615385",
      "town_mean_on_common_dates": "8.2435148076923076923076923076923076923076923076923",
      "max_absolute_town_change_from_primary": "0.000000",
      "max_change_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ]
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 26,
      "ordinary_primary_mean_contrast": "13.379562115384615384615384615384615384615384615385",
      "primary_mean_contrast_on_common_dates": "13.379562115384615384615384615384615384615384615385",
      "mean_contrast_on_common_dates": "13.424910346153846153846153846153846153846153846154",
      "town_mean_on_common_dates": "8.1981665769230769230769230769230769230769230769231",
      "max_absolute_town_change_from_primary": "1.179054",
      "max_change_dates": [
        "2025-06-06"
      ]
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 26,
      "ordinary_primary_mean_contrast": "13.392307692307692307692307692307692307692307692308",
      "primary_mean_contrast_on_common_dates": "13.392307692307692307692307692307692307692307692308",
      "mean_contrast_on_common_dates": "13.35",
      "town_mean_on_common_dates": "8.2730769230769230769230769230769230769230769230769",
      "max_absolute_town_change_from_primary": "0.7",
      "max_change_dates": [
        "2025-06-06"
      ]
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 26,
      "ordinary_primary_mean_contrast": "13.392307692307692307692307692307692307692307692308",
      "primary_mean_contrast_on_common_dates": "13.392307692307692307692307692307692307692307692308",
      "mean_contrast_on_common_dates": "13.392307692307692307692307692307692307692307692308",
      "town_mean_on_common_dates": "8.2307692307692307692307692307692307692307692307692",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ]
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 26,
      "ordinary_primary_mean_contrast": "13.392307692307692307692307692307692307692307692308",
      "primary_mean_contrast_on_common_dates": "13.392307692307692307692307692307692307692307692308",
      "mean_contrast_on_common_dates": "13.438461538461538461538461538461538461538461538462",
      "town_mean_on_common_dates": "8.1846153846153846153846153846153846153846153846154",
      "max_absolute_town_change_from_primary": "1.2",
      "max_change_dates": [
        "2025-06-06"
      ]
    },
    {
      "period": "2025-07",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "2.6923721195111128260534033029788547615372742707208",
      "primary_mean_contrast_on_common_dates": "2.6923721195111128260534033029788547615372742707208",
      "mean_contrast_on_common_dates": "2.6903225150569789576580748057827854092709780315892",
      "town_mean_on_common_dates": "6.0645161946204403971806348716365694294386993877661",
      "max_absolute_town_change_from_primary": "0.3353914736842105263157894736842105263157894736842",
      "max_change_dates": [
        "2025-07-24"
      ]
    },
    {
      "period": "2025-07",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "2.6923721195111128260534033029788547615372742707208",
      "primary_mean_contrast_on_common_dates": "2.6923721195111128260534033029788547615372742707208",
      "mean_contrast_on_common_dates": "2.6923721195111128260534033029788547615372742707208",
      "town_mean_on_common_dates": "6.0624665901663065287853063744405000771724031486335",
      "max_absolute_town_change_from_primary": "0E-9",
      "max_change_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31"
      ]
    },
    {
      "period": "2025-07",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "2.6923721195111128260534033029788547615372742707208",
      "primary_mean_contrast_on_common_dates": "2.6923721195111128260534033029788547615372742707208",
      "mean_contrast_on_common_dates": "2.6950711200783299891958635591912332150023151720945",
      "town_mean_on_common_dates": "6.0597675895990893656428461182281216237073622472603",
      "max_absolute_town_change_from_primary": "0.3381735789473684210526315789473684210526315789474",
      "max_change_dates": [
        "2025-07-24"
      ]
    },
    {
      "period": "2025-07",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "2.692075037299994855173123424396769048721510521171",
      "primary_mean_contrast_on_common_dates": "2.692075037299994855173123424396769048721510521171",
      "mean_contrast_on_common_dates": "2.6900556927509389309049750475896486083243298862993",
      "town_mean_on_common_dates": "6.0647830169264804239337346298297062303853475330558",
      "max_absolute_town_change_from_primary": "0.3368421052631578947368421052631578947368421052632",
      "max_change_dates": [
        "2025-07-24"
      ]
    },
    {
      "period": "2025-07",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "2.692075037299994855173123424396769048721510521171",
      "primary_mean_contrast_on_common_dates": "2.692075037299994855173123424396769048721510521171",
      "mean_contrast_on_common_dates": "2.692075037299994855173123424396769048721510521171",
      "town_mean_on_common_dates": "6.0627636723774244996655862530225857899881668981839",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31"
      ]
    },
    {
      "period": "2025-07",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "2.692075037299994855173123424396769048721510521171",
      "primary_mean_contrast_on_common_dates": "2.692075037299994855173123424396769048721510521171",
      "mean_contrast_on_common_dates": "2.6947786438236353346709883212429901733806657405977",
      "town_mean_on_common_dates": "6.0600600658537840201677213561763646653290116787577",
      "max_absolute_town_change_from_primary": "0.3368421052631578947368421052631578947368421052631",
      "max_change_dates": [
        "2025-07-24"
      ]
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "common_pair_count": 22,
      "ordinary_primary_mean_contrast": "1.2933195859683794466403162055335968379446640316205",
      "primary_mean_contrast_on_common_dates": "1.2933195859683794466403162055335968379446640316205",
      "mean_contrast_on_common_dates": "1.3171706378099173553719008264462809917355371900826",
      "town_mean_on_common_dates": "4.9555566349173553719008264462809917355371900826445",
      "max_absolute_town_change_from_primary": "0.1990974703557312252964426877470355731225296442688",
      "max_change_dates": [
        "2025-07-01"
      ]
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "common_pair_count": 22,
      "ordinary_primary_mean_contrast": "1.2933195859683794466403162055335968379446640316205",
      "primary_mean_contrast_on_common_dates": "1.2933195859683794466403162055335968379446640316205",
      "mean_contrast_on_common_dates": "1.2933195859683794466403162055335968379446640316205",
      "town_mean_on_common_dates": "4.9794076867588932806324110671936758893280632411068",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ]
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "common_pair_count": 22,
      "ordinary_primary_mean_contrast": "1.2933195859683794466403162055335968379446640316205",
      "primary_mean_contrast_on_common_dates": "1.2933195859683794466403162055335968379446640316205",
      "mean_contrast_on_common_dates": "1.2830927768235716852317642831476823571685231764283",
      "town_mean_on_common_dates": "4.9896344959037010420409629895795903701042040962991",
      "max_absolute_town_change_from_primary": "0.1277407826086956521739130434782608695652173913044",
      "max_change_dates": [
        "2025-07-19"
      ]
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "common_pair_count": 22,
      "ordinary_primary_mean_contrast": "1.2936758893280632411067193675889328063241106719367",
      "primary_mean_contrast_on_common_dates": "1.2936758893280632411067193675889328063241106719367",
      "mean_contrast_on_common_dates": "1.317696730147323032698526769673014732303269852677",
      "town_mean_on_common_dates": "4.95503054257994969457420050305425799496945742005",
      "max_absolute_town_change_from_primary": "0.1996047430830039525691699604743083003952569169961",
      "max_change_dates": [
        "2025-07-01"
      ]
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "common_pair_count": 22,
      "ordinary_primary_mean_contrast": "1.2936758893280632411067193675889328063241106719367",
      "primary_mean_contrast_on_common_dates": "1.2936758893280632411067193675889328063241106719367",
      "mean_contrast_on_common_dates": "1.2936758893280632411067193675889328063241106719367",
      "town_mean_on_common_dates": "4.9790513833992094861660079051383399209486166007905",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ]
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "common_pair_count": 22,
      "ordinary_primary_mean_contrast": "1.2936758893280632411067193675889328063241106719367",
      "primary_mean_contrast_on_common_dates": "1.2936758893280632411067193675889328063241106719367",
      "mean_contrast_on_common_dates": "1.2833273445921667265540783327344592166726554078332",
      "town_mean_on_common_dates": "4.9893999281351060007186489399928135106000718648941",
      "max_absolute_town_change_from_primary": "0.1260869565217391304347826086956521739130434782609",
      "max_change_dates": [
        "2025-07-19"
      ]
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "common_pair_count": 22,
      "ordinary_primary_mean_contrast": "4.5707297863636363636363636363636363636363636363636",
      "primary_mean_contrast_on_common_dates": "4.5707297863636363636363636363636363636363636363636",
      "mean_contrast_on_common_dates": "4.6647109227272727272727272727272727272727272727273",
      "town_mean_on_common_dates": "8.9671072590909090909090909090909090909090909090909",
      "max_absolute_town_change_from_primary": "2.067585",
      "max_change_dates": [
        "2025-07-01"
      ]
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "common_pair_count": 22,
      "ordinary_primary_mean_contrast": "4.5707297863636363636363636363636363636363636363636",
      "primary_mean_contrast_on_common_dates": "4.5707297863636363636363636363636363636363636363636",
      "mean_contrast_on_common_dates": "4.5707297863636363636363636363636363636363636363636",
      "town_mean_on_common_dates": "9.0610883954545454545454545454545454545454545454545",
      "max_absolute_town_change_from_primary": "0.000000",
      "max_change_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ]
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "common_pair_count": 22,
      "ordinary_primary_mean_contrast": "4.5707297863636363636363636363636363636363636363636",
      "primary_mean_contrast_on_common_dates": "4.5707297863636363636363636363636363636363636363636",
      "mean_contrast_on_common_dates": "4.5856692863636363636363636363636363636363636363636",
      "town_mean_on_common_dates": "9.0461488954545454545454545454545454545454545454545",
      "max_absolute_town_change_from_primary": "0.328669",
      "max_change_dates": [
        "2025-07-19"
      ]
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "common_pair_count": 22,
      "ordinary_primary_mean_contrast": "4.5772727272727272727272727272727272727272727272727",
      "primary_mean_contrast_on_common_dates": "4.5772727272727272727272727272727272727272727272727",
      "mean_contrast_on_common_dates": "4.6727272727272727272727272727272727272727272727273",
      "town_mean_on_common_dates": "8.9590909090909090909090909090909090909090909090909",
      "max_absolute_town_change_from_primary": "2.1",
      "max_change_dates": [
        "2025-07-01"
      ]
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "common_pair_count": 22,
      "ordinary_primary_mean_contrast": "4.5772727272727272727272727272727272727272727272727",
      "primary_mean_contrast_on_common_dates": "4.5772727272727272727272727272727272727272727272727",
      "mean_contrast_on_common_dates": "4.5772727272727272727272727272727272727272727272727",
      "town_mean_on_common_dates": "9.0545454545454545454545454545454545454545454545455",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ]
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "common_pair_count": 22,
      "ordinary_primary_mean_contrast": "4.5772727272727272727272727272727272727272727272727",
      "primary_mean_contrast_on_common_dates": "4.5772727272727272727272727272727272727272727272727",
      "mean_contrast_on_common_dates": "4.5909090909090909090909090909090909090909090909091",
      "town_mean_on_common_dates": "9.0409090909090909090909090909090909090909090909091",
      "max_absolute_town_change_from_primary": "0.3",
      "max_change_dates": [
        "2025-07-19"
      ]
    },
    {
      "period": "2025-08",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "3.0687013934899485741000467508181393174380551659655",
      "primary_mean_contrast_on_common_dates": "3.0687013934899485741000467508181393174380551659655",
      "mean_contrast_on_common_dates": "3.0742914403751753155680224403927068723702664796634",
      "town_mean_on_common_dates": "8.40957952736676016830294530154277699859747545582",
      "max_absolute_town_change_from_primary": "0.5239532173913043478260869565217391304347826086957",
      "max_change_dates": [
        "2025-08-15"
      ]
    },
    {
      "period": "2025-08",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "3.0687013934899485741000467508181393174380551659655",
      "primary_mean_contrast_on_common_dates": "3.0687013934899485741000467508181393174380551659655",
      "mean_contrast_on_common_dates": "3.0687013934899485741000467508181393174380551659655",
      "town_mean_on_common_dates": "8.4151695742519869097709209911173445535296867695181",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ]
    },
    {
      "period": "2025-08",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "3.0687013934899485741000467508181393174380551659655",
      "primary_mean_contrast_on_common_dates": "3.0687013934899485741000467508181393174380551659655",
      "mean_contrast_on_common_dates": "3.0627181578658251519401589527816736792893875642823",
      "town_mean_on_common_dates": "8.4211528098761103319308087891538101916783543712023",
      "max_absolute_town_change_from_primary": "0.5352447956521739130434782608695652173913043478261",
      "max_change_dates": [
        "2025-08-15"
      ]
    },
    {
      "period": "2025-08",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "3.0703541374474053295932678821879382889200561009818",
      "primary_mean_contrast_on_common_dates": "3.0703541374474053295932678821879382889200561009818",
      "mean_contrast_on_common_dates": "3.0759700794763908368396446937821411874707807386629",
      "town_mean_on_common_dates": "8.4079008882655446470313230481533426834969611968210",
      "max_absolute_town_change_from_primary": "0.5217391304347826086956521739130434782608695652174",
      "max_change_dates": [
        "2025-08-15"
      ]
    },
    {
      "period": "2025-08",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "3.0703541374474053295932678821879382889200561009818",
      "primary_mean_contrast_on_common_dates": "3.0703541374474053295932678821879382889200561009818",
      "mean_contrast_on_common_dates": "3.0703541374474053295932678821879382889200561009818",
      "town_mean_on_common_dates": "8.4135168302945301542776998597475455820476858345023",
      "max_absolute_town_change_from_primary": "0.000",
      "max_change_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ]
    },
    {
      "period": "2025-08",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 31,
      "ordinary_primary_mean_contrast": "3.0703541374474053295932678821879382889200561009818",
      "primary_mean_contrast_on_common_dates": "3.0703541374474053295932678821879382889200561009818",
      "mean_contrast_on_common_dates": "3.0643525011687704534829359513791491351098644226275",
      "town_mean_on_common_dates": "8.4195184665731650303880317905563347358578775128565",
      "max_absolute_town_change_from_primary": "0.5347826086956521739130434782608695652173913043478",
      "max_change_dates": [
        "2025-08-15"
      ]
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.4063820511512377782400665695860203869357187434991",
      "primary_mean_contrast_on_common_dates": "1.4063820511512377782400665695860203869357187434991",
      "mean_contrast_on_common_dates": "1.4251417896176409402954025379654670272519242770959",
      "town_mean_on_common_dates": "6.106858210382359059704597462034532972748075722904",
      "max_absolute_town_change_from_primary": "0.2531327043478260869565217391304347826086956521739",
      "max_change_dates": [
        "2025-08-19"
      ]
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.4063820511512377782400665695860203869357187434991",
      "primary_mean_contrast_on_common_dates": "1.4063820511512377782400665695860203869357187434991",
      "mean_contrast_on_common_dates": "1.4063820511512377782400665695860203869357187434991",
      "town_mean_on_common_dates": "6.1256179488487622217599334304139796130642812565012",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ]
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.4063820511512377782400665695860203869357187434991",
      "primary_mean_contrast_on_common_dates": "1.4063820511512377782400665695860203869357187434991",
      "mean_contrast_on_common_dates": "1.3953569969656750572082379862700228832951945080092",
      "town_mean_on_common_dates": "6.1366430030343249427917620137299771167048054919912",
      "max_absolute_town_change_from_primary": "0.2415269217391304347826086956521739130434782608695",
      "max_change_dates": [
        "2025-08-19"
      ]
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.4062504680674017058456417724152277928021635115456",
      "primary_mean_contrast_on_common_dates": "1.4062504680674017058456417724152277928021635115456",
      "mean_contrast_on_common_dates": "1.4250551279384231329311420844601622633659246931558",
      "town_mean_on_common_dates": "6.1069448720615768670688579155398377366340753068448",
      "max_absolute_town_change_from_primary": "0.2521739130434782608695652173913043478260869565218",
      "max_change_dates": [
        "2025-08-19"
      ]
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.4062504680674017058456417724152277928021635115456",
      "primary_mean_contrast_on_common_dates": "1.4062504680674017058456417724152277928021635115456",
      "mean_contrast_on_common_dates": "1.4062504680674017058456417724152277928021635115456",
      "town_mean_on_common_dates": "6.125749531932598294154358227584772207197836488454",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ]
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "1.4062504680674017058456417724152277928021635115456",
      "primary_mean_contrast_on_common_dates": "1.4062504680674017058456417724152277928021635115456",
      "mean_contrast_on_common_dates": "1.3952727272727272727272727272727272727272727272727",
      "town_mean_on_common_dates": "6.1367272727272727272727272727272727272727272727272",
      "max_absolute_town_change_from_primary": "0.2434782608695652173913043478260869565217391304347",
      "max_change_dates": [
        "2025-08-19"
      ]
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "6.200816036",
      "primary_mean_contrast_on_common_dates": "6.200816036",
      "mean_contrast_on_common_dates": "6.180059276",
      "town_mean_on_common_dates": "12.591940724",
      "max_absolute_town_change_from_primary": "0.5189190",
      "max_change_dates": [
        "2025-08-30"
      ]
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "6.200816036",
      "primary_mean_contrast_on_common_dates": "6.200816036",
      "mean_contrast_on_common_dates": "6.200816036",
      "town_mean_on_common_dates": "12.571183964",
      "max_absolute_town_change_from_primary": "0.000000",
      "max_change_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ]
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "6.200816036",
      "primary_mean_contrast_on_common_dates": "6.200816036",
      "mean_contrast_on_common_dates": "6.200816036",
      "town_mean_on_common_dates": "12.571183964",
      "max_absolute_town_change_from_primary": "0.000000",
      "max_change_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ]
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "6.196",
      "primary_mean_contrast_on_common_dates": "6.196",
      "mean_contrast_on_common_dates": "6.176",
      "town_mean_on_common_dates": "12.596",
      "max_absolute_town_change_from_primary": "0.5",
      "max_change_dates": [
        "2025-08-30"
      ]
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "6.196",
      "primary_mean_contrast_on_common_dates": "6.196",
      "mean_contrast_on_common_dates": "6.196",
      "town_mean_on_common_dates": "12.576",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ]
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "6.196",
      "primary_mean_contrast_on_common_dates": "6.196",
      "mean_contrast_on_common_dates": "6.196",
      "town_mean_on_common_dates": "12.576",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ]
    },
    {
      "period": "2025-09",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "4.1858363083635265700483091787439613526570048309177",
      "primary_mean_contrast_on_common_dates": "4.1858363083635265700483091787439613526570048309177",
      "mean_contrast_on_common_dates": "4.1795744548792270531400966183574879227053140096617",
      "town_mean_on_common_dates": "17.003758878454106280193236714975845410628019323672",
      "max_absolute_town_change_from_primary": "2.844893137500000000000000000000000000000000000000",
      "max_change_dates": [
        "2025-09-04"
      ]
    },
    {
      "period": "2025-09",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "4.1858363083635265700483091787439613526570048309177",
      "primary_mean_contrast_on_common_dates": "4.1858363083635265700483091787439613526570048309177",
      "mean_contrast_on_common_dates": "4.1858363083635265700483091787439613526570048309177",
      "town_mean_on_common_dates": "16.997497024969806763285024154589371980676328502416",
      "max_absolute_town_change_from_primary": "0E-48",
      "max_change_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ]
    },
    {
      "period": "2025-09",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "4.1858363083635265700483091787439613526570048309177",
      "primary_mean_contrast_on_common_dates": "4.1858363083635265700483091787439613526570048309177",
      "mean_contrast_on_common_dates": "4.1946975739311594202898550724637681159420289855067",
      "town_mean_on_common_dates": "16.988635759402173913043478260869565217391304347827",
      "max_absolute_town_change_from_primary": "2.375831762500000000000000000000000000000000000000",
      "max_change_dates": [
        "2025-09-04"
      ]
    },
    {
      "period": "2025-09",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "4.1861050724637681159420289855072463768115942028983",
      "primary_mean_contrast_on_common_dates": "4.1861050724637681159420289855072463768115942028983",
      "mean_contrast_on_common_dates": "4.1798611111111111111111111111111111111111111111113",
      "town_mean_on_common_dates": "17.003472222222222222222222222222222222222222222222",
      "max_absolute_town_change_from_primary": "2.841666666666666666666666666666666666666666666666",
      "max_change_dates": [
        "2025-09-04"
      ]
    },
    {
      "period": "2025-09",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "4.1861050724637681159420289855072463768115942028983",
      "primary_mean_contrast_on_common_dates": "4.1861050724637681159420289855072463768115942028983",
      "mean_contrast_on_common_dates": "4.1861050724637681159420289855072463768115942028983",
      "town_mean_on_common_dates": "16.997228260869565217391304347826086956521739130435",
      "max_absolute_town_change_from_primary": "0E-48",
      "max_change_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ]
    },
    {
      "period": "2025-09",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "4.1861050724637681159420289855072463768115942028983",
      "primary_mean_contrast_on_common_dates": "4.1861050724637681159420289855072463768115942028983",
      "mean_contrast_on_common_dates": "4.1948671497584541062801932367149758454106280193237",
      "town_mean_on_common_dates": "16.988466183574879227053140096618357487922705314010",
      "max_absolute_town_change_from_primary": "2.379166666666666666666666666666666666666666666667",
      "max_change_dates": [
        "2025-09-04"
      ]
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "3.8550697771146245059288537549407114624505928853753",
      "primary_mean_contrast_on_common_dates": "3.8550697771146245059288537549407114624505928853753",
      "mean_contrast_on_common_dates": "3.8479037020948616600790513833992094861660079051383",
      "town_mean_on_common_dates": "6.5854296312384716732542819499341238471673254281953",
      "max_absolute_town_change_from_primary": "0.2059465695652173913043478260869565217391304347826",
      "max_change_dates": [
        "2025-09-13"
      ]
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "3.8550697771146245059288537549407114624505928853753",
      "primary_mean_contrast_on_common_dates": "3.8550697771146245059288537549407114624505928853753",
      "mean_contrast_on_common_dates": "3.8550697771146245059288537549407114624505928853753",
      "town_mean_on_common_dates": "6.578263556218708827404479578392621870882740447958",
      "max_absolute_town_change_from_primary": "0E-7",
      "max_change_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ]
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "3.8550697771146245059288537549407114624505928853753",
      "primary_mean_contrast_on_common_dates": "3.8550697771146245059288537549407114624505928853753",
      "mean_contrast_on_common_dates": "3.8567033514492753623188405797101449275362318840583",
      "town_mean_on_common_dates": "6.5766299818840579710144927536231884057971014492747",
      "max_absolute_town_change_from_primary": "0.2008770913043478260869565217391304347826086956522",
      "max_change_dates": [
        "2025-09-16"
      ]
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "3.856376811594202898550724637681159420289855072464",
      "primary_mean_contrast_on_common_dates": "3.856376811594202898550724637681159420289855072464",
      "mean_contrast_on_common_dates": "3.8491370223978919631093544137022397891963109354417",
      "town_mean_on_common_dates": "6.584196310935441370223978919631093544137022397892",
      "max_absolute_town_change_from_primary": "0.2086956521739130434782608695652173913043478260869",
      "max_change_dates": [
        "2025-09-13"
      ]
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "3.856376811594202898550724637681159420289855072464",
      "primary_mean_contrast_on_common_dates": "3.856376811594202898550724637681159420289855072464",
      "mean_contrast_on_common_dates": "3.856376811594202898550724637681159420289855072464",
      "town_mean_on_common_dates": "6.57695652173913043478260869565217391304347826087",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ]
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "3.856376811594202898550724637681159420289855072464",
      "primary_mean_contrast_on_common_dates": "3.856376811594202898550724637681159420289855072464",
      "mean_contrast_on_common_dates": "3.85799736495388669301712779973649538866930171278",
      "town_mean_on_common_dates": "6.5753359683794466403162055335968379446640316205537",
      "max_absolute_town_change_from_primary": "0.2000000000000000000000000000000000000000000000000",
      "max_change_dates": [
        "2025-09-16",
        "2025-09-21"
      ]
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "9.6108712133333333333333333333333333333333333333333",
      "primary_mean_contrast_on_common_dates": "9.6108712133333333333333333333333333333333333333333",
      "mean_contrast_on_common_dates": "9.5583695033333333333333333333333333333333333333333",
      "town_mean_on_common_dates": "11.938297163333333333333333333333333333333333333333",
      "max_absolute_town_change_from_primary": "1.0643253",
      "max_change_dates": [
        "2025-09-13"
      ]
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "9.6108712133333333333333333333333333333333333333333",
      "primary_mean_contrast_on_common_dates": "9.6108712133333333333333333333333333333333333333333",
      "mean_contrast_on_common_dates": "9.6108712133333333333333333333333333333333333333333",
      "town_mean_on_common_dates": "11.885795453333333333333333333333333333333333333333",
      "max_absolute_town_change_from_primary": "0E-7",
      "max_change_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ]
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "9.6108712133333333333333333333333333333333333333333",
      "primary_mean_contrast_on_common_dates": "9.6108712133333333333333333333333333333333333333333",
      "mean_contrast_on_common_dates": "9.6108712133333333333333333333333333333333333333333",
      "town_mean_on_common_dates": "11.885795453333333333333333333333333333333333333333",
      "max_absolute_town_change_from_primary": "0E-7",
      "max_change_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ]
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "9.6133333333333333333333333333333333333333333333333",
      "primary_mean_contrast_on_common_dates": "9.6133333333333333333333333333333333333333333333333",
      "mean_contrast_on_common_dates": "9.5566666666666666666666666666666666666666666666667",
      "town_mean_on_common_dates": "11.94",
      "max_absolute_town_change_from_primary": "1.1",
      "max_change_dates": [
        "2025-09-13"
      ]
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "9.6133333333333333333333333333333333333333333333333",
      "primary_mean_contrast_on_common_dates": "9.6133333333333333333333333333333333333333333333333",
      "mean_contrast_on_common_dates": "9.6133333333333333333333333333333333333333333333333",
      "town_mean_on_common_dates": "11.883333333333333333333333333333333333333333333333",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ]
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "9.6133333333333333333333333333333333333333333333333",
      "primary_mean_contrast_on_common_dates": "9.6133333333333333333333333333333333333333333333333",
      "mean_contrast_on_common_dates": "9.6133333333333333333333333333333333333333333333333",
      "town_mean_on_common_dates": "11.883333333333333333333333333333333333333333333333",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ]
    },
    {
      "period": "2025-10",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "2.2702318820000000000000000000000000000000000000000",
      "primary_mean_contrast_on_common_dates": "2.2702318820000000000000000000000000000000000000000",
      "mean_contrast_on_common_dates": "2.2771634186666666666666666666666666666666666666666",
      "town_mean_on_common_dates": "4.5748365813333333333333333333333333333333333333336",
      "max_absolute_town_change_from_primary": "0.5170966791666666666666666666666666666666666666667",
      "max_change_dates": [
        "2025-10-18"
      ]
    },
    {
      "period": "2025-10",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "2.2702318820000000000000000000000000000000000000000",
      "primary_mean_contrast_on_common_dates": "2.2702318820000000000000000000000000000000000000000",
      "mean_contrast_on_common_dates": "2.2702318820000000000000000000000000000000000000000",
      "town_mean_on_common_dates": "4.5817681179999999999999999999999999999999999999996",
      "max_absolute_town_change_from_primary": "0E-9",
      "max_change_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ]
    },
    {
      "period": "2025-10",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "2.2702318820000000000000000000000000000000000000000",
      "primary_mean_contrast_on_common_dates": "2.2702318820000000000000000000000000000000000000000",
      "mean_contrast_on_common_dates": "2.2653738269999999999999999999999999999999999999999",
      "town_mean_on_common_dates": "4.5866261730000000000000000000000000000000000000004",
      "max_absolute_town_change_from_primary": "0.7004072333333333333333333333333333333333333333333",
      "max_change_dates": [
        "2025-10-18"
      ]
    },
    {
      "period": "2025-10",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "2.2695000000000000000000000000000000000000000000000",
      "primary_mean_contrast_on_common_dates": "2.2695000000000000000000000000000000000000000000000",
      "mean_contrast_on_common_dates": "2.2763333333333333333333333333333333333333333333334",
      "town_mean_on_common_dates": "4.5756666666666666666666666666666666666666666666664",
      "max_absolute_town_change_from_primary": "0.5166666666666666666666666666666666666666666666666",
      "max_change_dates": [
        "2025-10-18"
      ]
    },
    {
      "period": "2025-10",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "2.2695000000000000000000000000000000000000000000000",
      "primary_mean_contrast_on_common_dates": "2.2695000000000000000000000000000000000000000000000",
      "mean_contrast_on_common_dates": "2.2695000000000000000000000000000000000000000000000",
      "town_mean_on_common_dates": "4.58250000000000000000000000000000000000000000000",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ]
    },
    {
      "period": "2025-10",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 25,
      "ordinary_primary_mean_contrast": "2.2695000000000000000000000000000000000000000000000",
      "primary_mean_contrast_on_common_dates": "2.2695000000000000000000000000000000000000000000000",
      "mean_contrast_on_common_dates": "2.2646666666666666666666666666666666666666666666666",
      "town_mean_on_common_dates": "4.5873333333333333333333333333333333333333333333336",
      "max_absolute_town_change_from_primary": "0.7000000000000000000000000000000000000000000000000",
      "max_change_dates": [
        "2025-10-18"
      ]
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "4.5205576797275724811956696014667029159782782971189",
      "primary_mean_contrast_on_common_dates": "4.5205576797275724811956696014667029159782782971189",
      "mean_contrast_on_common_dates": "4.5282211020463433506911767781332998724303072129159",
      "town_mean_on_common_dates": "5.5088159349906936863458602589037371646067298241211",
      "max_absolute_town_change_from_primary": "0.3254734043478260869565217391304347826086956521739",
      "max_change_dates": [
        "2025-10-16"
      ]
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "4.5205576797275724811956696014667029159782782971189",
      "primary_mean_contrast_on_common_dates": "4.5205576797275724811956696014667029159782782971189",
      "mean_contrast_on_common_dates": "4.5205576797275724811956696014667029159782782971189",
      "town_mean_on_common_dates": "5.5164793573094645558413674355703341210587587399185",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ]
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "4.5205576797275724811956696014667029159782782971189",
      "primary_mean_contrast_on_common_dates": "4.5205576797275724811956696014667029159782782971189",
      "mean_contrast_on_common_dates": "4.5196672303741347219608089173306564610912436999389",
      "town_mean_on_common_dates": "5.5173698066629023150762281197063805759457933370981",
      "max_absolute_town_change_from_primary": "0.3630380000000000000000000000000000000000000000000",
      "max_change_dates": [
        "2025-10-16"
      ]
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "4.5191507901652829189061073119044133536887160075570",
      "primary_mean_contrast_on_common_dates": "4.5191507901652829189061073119044133536887160075570",
      "mean_contrast_on_common_dates": "4.5268694536810478839464346710723522317725216275941",
      "town_mean_on_common_dates": "5.5101675833559891530906023659646848052645154094433",
      "max_absolute_town_change_from_primary": "0.3260869565217391304347826086956521739130434782609",
      "max_change_dates": [
        "2025-10-16"
      ]
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "4.5191507901652829189061073119044133536887160075570",
      "primary_mean_contrast_on_common_dates": "4.5191507901652829189061073119044133536887160075570",
      "mean_contrast_on_common_dates": "4.5191507901652829189061073119044133536887160075570",
      "town_mean_on_common_dates": "5.5178862468717541181309297251326236833483210294804",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ]
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "4.5191507901652829189061073119044133536887160075570",
      "primary_mean_contrast_on_common_dates": "4.5191507901652829189061073119044133536887160075570",
      "mean_contrast_on_common_dates": "4.5183906002746582456727384263616147674118688611441",
      "town_mean_on_common_dates": "5.5186464367623787913642986106754222696251681758930",
      "max_absolute_town_change_from_primary": "0.3608695652173913043478260869565217391304347826087",
      "max_change_dates": [
        "2025-10-16"
      ]
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "7.2671901814814814814814814814814814814814814814815",
      "primary_mean_contrast_on_common_dates": "7.2671901814814814814814814814814814814814814814815",
      "mean_contrast_on_common_dates": "7.2450928851851851851851851851851851851851851851852",
      "town_mean_on_common_dates": "12.110462670370370370370370370370370370370370370370",
      "max_absolute_town_change_from_primary": "0.596627",
      "max_change_dates": [
        "2025-10-25"
      ]
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "7.2671901814814814814814814814814814814814814814815",
      "primary_mean_contrast_on_common_dates": "7.2671901814814814814814814814814814814814814814815",
      "mean_contrast_on_common_dates": "7.2671901814814814814814814814814814814814814814815",
      "town_mean_on_common_dates": "12.088365374074074074074074074074074074074074074074",
      "max_absolute_town_change_from_primary": "0E-7",
      "max_change_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ]
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "7.2671901814814814814814814814814814814814814814815",
      "primary_mean_contrast_on_common_dates": "7.2671901814814814814814814814814814814814814814815",
      "mean_contrast_on_common_dates": "7.2671901814814814814814814814814814814814814814815",
      "town_mean_on_common_dates": "12.088365374074074074074074074074074074074074074074",
      "max_absolute_town_change_from_primary": "0E-7",
      "max_change_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ]
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "7.2666666666666666666666666666666666666666666666667",
      "primary_mean_contrast_on_common_dates": "7.2666666666666666666666666666666666666666666666667",
      "mean_contrast_on_common_dates": "7.2444444444444444444444444444444444444444444444444",
      "town_mean_on_common_dates": "12.111111111111111111111111111111111111111111111111",
      "max_absolute_town_change_from_primary": "0.6",
      "max_change_dates": [
        "2025-10-25"
      ]
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "7.2666666666666666666666666666666666666666666666667",
      "primary_mean_contrast_on_common_dates": "7.2666666666666666666666666666666666666666666666667",
      "mean_contrast_on_common_dates": "7.2666666666666666666666666666666666666666666666667",
      "town_mean_on_common_dates": "12.088888888888888888888888888888888888888888888889",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ]
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "7.2666666666666666666666666666666666666666666666667",
      "primary_mean_contrast_on_common_dates": "7.2666666666666666666666666666666666666666666666667",
      "mean_contrast_on_common_dates": "7.2666666666666666666666666666666666666666666666667",
      "town_mean_on_common_dates": "12.088888888888888888888888888888888888888888888889",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ]
    },
    {
      "period": "2025-11",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 29,
      "ordinary_primary_mean_contrast": "2.6089388236658456486042692939244663382594417077176",
      "primary_mean_contrast_on_common_dates": "2.6089388236658456486042692939244663382594417077176",
      "mean_contrast_on_common_dates": "2.6156144391215106732348111658456486042692939244663",
      "town_mean_on_common_dates": "3.5050752160509031198686371100164203612479474548441",
      "max_absolute_town_change_from_primary": "0.2937980458333333333333333333333333333333333333334",
      "max_change_dates": [
        "2025-11-21"
      ]
    },
    {
      "period": "2025-11",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 29,
      "ordinary_primary_mean_contrast": "2.6089388236658456486042692939244663382594417077176",
      "primary_mean_contrast_on_common_dates": "2.6089388236658456486042692939244663382594417077176",
      "mean_contrast_on_common_dates": "2.6089388236658456486042692939244663382594417077176",
      "town_mean_on_common_dates": "3.5117508315065681444991789819376026272577996715928",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ]
    },
    {
      "period": "2025-11",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 29,
      "ordinary_primary_mean_contrast": "2.6089388236658456486042692939244663382594417077176",
      "primary_mean_contrast_on_common_dates": "2.6089388236658456486042692939244663382594417077176",
      "mean_contrast_on_common_dates": "2.5952444061371100164203612479474548440065681444991",
      "town_mean_on_common_dates": "3.5254452490353037766830870279146141215106732348114",
      "max_absolute_town_change_from_primary": "0.4776606000000000000000000000000000000000000000000",
      "max_change_dates": [
        "2025-11-21"
      ]
    },
    {
      "period": "2025-11",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 29,
      "ordinary_primary_mean_contrast": "2.6092775041050903119868637110016420361247947454844",
      "primary_mean_contrast_on_common_dates": "2.6092775041050903119868637110016420361247947454844",
      "mean_contrast_on_common_dates": "2.6159072249589490968801313628899835796387520525451",
      "town_mean_on_common_dates": "3.5047824302134646962233169129720853858784893267652",
      "max_absolute_town_change_from_primary": "0.2916666666666666666666666666666666666666666666666",
      "max_change_dates": [
        "2025-11-21"
      ]
    },
    {
      "period": "2025-11",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 29,
      "ordinary_primary_mean_contrast": "2.6092775041050903119868637110016420361247947454844",
      "primary_mean_contrast_on_common_dates": "2.6092775041050903119868637110016420361247947454844",
      "mean_contrast_on_common_dates": "2.6092775041050903119868637110016420361247947454844",
      "town_mean_on_common_dates": "3.5114121510673234811165845648604269293924466338259",
      "max_absolute_town_change_from_primary": "0.0000",
      "max_change_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ]
    },
    {
      "period": "2025-11",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 29,
      "ordinary_primary_mean_contrast": "2.6092775041050903119868637110016420361247947454844",
      "primary_mean_contrast_on_common_dates": "2.6092775041050903119868637110016420361247947454844",
      "mean_contrast_on_common_dates": "2.5955665024630541871921182266009852216748768472907",
      "town_mean_on_common_dates": "3.5251231527093596059113300492610837438423645320197",
      "max_absolute_town_change_from_primary": "0.4791666666666666666666666666666666666666666666667",
      "max_change_dates": [
        "2025-11-21"
      ]
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "5.6663937430679795668354020756766752190093151191556",
      "primary_mean_contrast_on_common_dates": "5.6663937430679795668354020756766752190093151191556",
      "mean_contrast_on_common_dates": "5.6665807566966383900022343958270731726109300480015",
      "town_mean_on_common_dates": "4.9111970210811393877755433819507046051668477297767",
      "max_absolute_town_change_from_primary": "0.2619788782608695652173913043478260869565217391305",
      "max_change_dates": [
        "2025-11-13"
      ]
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "5.6663937430679795668354020756766752190093151191556",
      "primary_mean_contrast_on_common_dates": "5.6663937430679795668354020756766752190093151191556",
      "mean_contrast_on_common_dates": "5.6663937430679795668354020756766752190093151191556",
      "town_mean_on_common_dates": "4.9113840347097982109423757021011025587684626586226",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ]
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "5.6663937430679795668354020756766752190093151191556",
      "primary_mean_contrast_on_common_dates": "5.6663937430679795668354020756766752190093151191556",
      "mean_contrast_on_common_dates": "5.6526728895411013259983511699758839346940033438896",
      "town_mean_on_common_dates": "4.9251048882366764517794266078018938430837744338885",
      "max_absolute_town_change_from_primary": "0.2463241347826086956521739130434782608695652173913",
      "max_change_dates": [
        "2025-11-13"
      ]
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "5.6668504264614104431038069482005408778864156438526",
      "primary_mean_contrast_on_common_dates": "5.6668504264614104431038069482005408778864156438526",
      "mean_contrast_on_common_dates": "5.6668758523449598964473106349536555486212236784319",
      "town_mean_on_common_dates": "4.9109019254328178813304671428241222291565540993459",
      "max_absolute_town_change_from_primary": "0.2608695652173913043478260869565217391304347826087",
      "max_change_dates": [
        "2025-11-13"
      ]
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "5.6668504264614104431038069482005408778864156438526",
      "primary_mean_contrast_on_common_dates": "5.6668504264614104431038069482005408778864156438526",
      "mean_contrast_on_common_dates": "5.6668504264614104431038069482005408778864156438526",
      "town_mean_on_common_dates": "4.9109273513163673346739708295772368998913621339252",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ]
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "5.6668504264614104431038069482005408778864156438526",
      "primary_mean_contrast_on_common_dates": "5.6668504264614104431038069482005408778864156438526",
      "mean_contrast_on_common_dates": "5.6533789458274584132707702501752845002272919893056",
      "town_mean_on_common_dates": "4.9243988319503193645070075276024932775504857884722",
      "max_absolute_town_change_from_primary": "0.2478260869565217391304347826086956521739130434782",
      "max_change_dates": [
        "2025-11-13"
      ]
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "9.6728254259259259259259259259259259259259259259259",
      "primary_mean_contrast_on_common_dates": "9.6728254259259259259259259259259259259259259259259",
      "mean_contrast_on_common_dates": "9.6242642074074074074074074074074074074074074074074",
      "town_mean_on_common_dates": "10.572032088888888888888888888888888888888888888889",
      "max_absolute_town_change_from_primary": "1.3111529",
      "max_change_dates": [
        "2025-11-08"
      ]
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "9.6728254259259259259259259259259259259259259259259",
      "primary_mean_contrast_on_common_dates": "9.6728254259259259259259259259259259259259259259259",
      "mean_contrast_on_common_dates": "9.6728254259259259259259259259259259259259259259259",
      "town_mean_on_common_dates": "10.523470870370370370370370370370370370370370370370",
      "max_absolute_town_change_from_primary": "0.000000",
      "max_change_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ]
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "9.6728254259259259259259259259259259259259259259259",
      "primary_mean_contrast_on_common_dates": "9.6728254259259259259259259259259259259259259259259",
      "mean_contrast_on_common_dates": "9.6831472037037037037037037037037037037037037037037",
      "town_mean_on_common_dates": "10.513149092592592592592592592592592592592592592593",
      "max_absolute_town_change_from_primary": "0.278688",
      "max_change_dates": [
        "2025-11-08"
      ]
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "9.6888888888888888888888888888888888888888888888889",
      "primary_mean_contrast_on_common_dates": "9.6888888888888888888888888888888888888888888888889",
      "mean_contrast_on_common_dates": "9.6407407407407407407407407407407407407407407407407",
      "town_mean_on_common_dates": "10.555555555555555555555555555555555555555555555556",
      "max_absolute_town_change_from_primary": "1.3",
      "max_change_dates": [
        "2025-11-08"
      ]
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "9.6888888888888888888888888888888888888888888888889",
      "primary_mean_contrast_on_common_dates": "9.6888888888888888888888888888888888888888888888889",
      "mean_contrast_on_common_dates": "9.6888888888888888888888888888888888888888888888889",
      "town_mean_on_common_dates": "10.507407407407407407407407407407407407407407407407",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ]
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 27,
      "ordinary_primary_mean_contrast": "9.6888888888888888888888888888888888888888888888889",
      "primary_mean_contrast_on_common_dates": "9.6888888888888888888888888888888888888888888888889",
      "mean_contrast_on_common_dates": "9.7",
      "town_mean_on_common_dates": "10.496296296296296296296296296296296296296296296296",
      "max_absolute_town_change_from_primary": "0.3",
      "max_change_dates": [
        "2025-11-08"
      ]
    },
    {
      "period": "2025-12",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "common_pair_count": 19,
      "ordinary_primary_mean_contrast": "3.2550970814692028985507246376811594202898550724638",
      "primary_mean_contrast_on_common_dates": "3.2951711541781083142639206712433257055682684973304",
      "mean_contrast_on_common_dates": "3.2821989020614035087719298245614035087719298245614",
      "town_mean_on_common_dates": "3.0546432032017543859649122807017543859649122807017",
      "max_absolute_town_change_from_primary": "0.3021093875000000000000000000000000000000000000000",
      "max_change_dates": [
        "2025-12-01"
      ]
    },
    {
      "period": "2025-12",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "common_pair_count": 19,
      "ordinary_primary_mean_contrast": "3.2550970814692028985507246376811594202898550724638",
      "primary_mean_contrast_on_common_dates": "3.2951711541781083142639206712433257055682684973304",
      "mean_contrast_on_common_dates": "3.2951711541781083142639206712433257055682684973304",
      "town_mean_on_common_dates": "3.0416709510850495804729214340198321891685736079328",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ]
    },
    {
      "period": "2025-12",
      "metric": "pm25_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "common_pair_count": 19,
      "ordinary_primary_mean_contrast": "3.2550970814692028985507246376811594202898550724638",
      "primary_mean_contrast_on_common_dates": "3.2951711541781083142639206712433257055682684973304",
      "mean_contrast_on_common_dates": "3.3065358010723944247971707925941335552319534012898",
      "town_mean_on_common_dates": "3.0303063041907634699396713126690243395048887039733",
      "max_absolute_town_change_from_primary": "0.2703544666666666666666666666666666666666666666666",
      "max_change_dates": [
        "2025-12-01"
      ]
    },
    {
      "period": "2025-12",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "common_pair_count": 19,
      "ordinary_primary_mean_contrast": "3.2542500000000000000000000000000000000000000000001",
      "primary_mean_contrast_on_common_dates": "3.2943859649122807017543859649122807017543859649124",
      "mean_contrast_on_common_dates": "3.2811403508771929824561403508771929824561403508772",
      "town_mean_on_common_dates": "3.0557017543859649122807017543859649122807017543859",
      "max_absolute_town_change_from_primary": "0.3041666666666666666666666666666666666666666666666",
      "max_change_dates": [
        "2025-12-01"
      ]
    },
    {
      "period": "2025-12",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "common_pair_count": 19,
      "ordinary_primary_mean_contrast": "3.2542500000000000000000000000000000000000000000001",
      "primary_mean_contrast_on_common_dates": "3.2943859649122807017543859649122807017543859649124",
      "mean_contrast_on_common_dates": "3.2943859649122807017543859649122807017543859649124",
      "town_mean_on_common_dates": "3.0424561403508771929824561403508771929824561403508",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ]
    },
    {
      "period": "2025-12",
      "metric": "pm25_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30"
      ],
      "common_pair_count": 19,
      "ordinary_primary_mean_contrast": "3.2542500000000000000000000000000000000000000000001",
      "primary_mean_contrast_on_common_dates": "3.2943859649122807017543859649122807017543859649124",
      "mean_contrast_on_common_dates": "3.3054552388877331669093682823659940364745856736704",
      "town_mean_on_common_dates": "3.0313868663754247278274738228971638582622564315928",
      "max_absolute_town_change_from_primary": "0.2708333333333333333333333333333333333333333333334",
      "max_change_dates": [
        "2025-12-01"
      ]
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "5.9455849930211653703939818946831569552467168175445",
      "primary_mean_contrast_on_common_dates": "5.970554222637022397891963109354413702239789196311",
      "mean_contrast_on_common_dates": "5.9706326596910408432147562582345191040843214756267",
      "town_mean_on_common_dates": "5.2527006736422924901185770750988142292490118577067",
      "max_absolute_town_change_from_primary": "0.3736823739130434782608695652173913043478260869565",
      "max_change_dates": [
        "2025-12-06"
      ]
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "5.9455849930211653703939818946831569552467168175445",
      "primary_mean_contrast_on_common_dates": "5.970554222637022397891963109354413702239789196311",
      "mean_contrast_on_common_dates": "5.970554222637022397891963109354413702239789196311",
      "town_mean_on_common_dates": "5.2527791106963109354413702239789196310935441370223",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ]
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_mean",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "5.9455849930211653703939818946831569552467168175445",
      "primary_mean_contrast_on_common_dates": "5.970554222637022397891963109354413702239789196311",
      "mean_contrast_on_common_dates": "5.9765781025362318840579710144927536231884057971013",
      "town_mean_on_common_dates": "5.2467552307971014492753623188405797101449275362323",
      "max_absolute_town_change_from_primary": "0.340607045454545454545454545454545454545454545455",
      "max_change_dates": [
        "2025-12-08"
      ]
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "5.9457191125844702282289940073951294147647583832719",
      "primary_mean_contrast_on_common_dates": "5.970879446640316205533596837944664031620553359684",
      "mean_contrast_on_common_dates": "5.9709545454545454545454545454545454545454545454543",
      "town_mean_on_common_dates": "5.252378787878787878787878787878787878787878787879",
      "max_absolute_town_change_from_primary": "0.3739130434782608695652173913043478260869565217392",
      "max_change_dates": [
        "2025-12-06"
      ]
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "5.9457191125844702282289940073951294147647583832719",
      "primary_mean_contrast_on_common_dates": "5.970879446640316205533596837944664031620553359684",
      "mean_contrast_on_common_dates": "5.970879446640316205533596837944664031620553359684",
      "town_mean_on_common_dates": "5.2524538866930171277997364953886693017127799736497",
      "max_absolute_town_change_from_primary": "0E-49",
      "max_change_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ]
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_mean",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "5.9457191125844702282289940073951294147647583832719",
      "primary_mean_contrast_on_common_dates": "5.970879446640316205533596837944664031620553359684",
      "mean_contrast_on_common_dates": "5.9768557312252964426877470355731225296442687747037",
      "town_mean_on_common_dates": "5.2464776021080368906455862977602108036890645586297",
      "max_absolute_town_change_from_primary": "0.342094861660079051383399209486166007905138339921",
      "max_change_dates": [
        "2025-12-08"
      ]
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "9.0124954096774193548387096774193548387096774193548",
      "primary_mean_contrast_on_common_dates": "9.12530412",
      "mean_contrast_on_common_dates": "9.0505039866666666666666666666666666666666666666667",
      "town_mean_on_common_dates": "10.872829346666666666666666666666666666666666666667",
      "max_absolute_town_change_from_primary": "2.244004",
      "max_change_dates": [
        "2025-12-27"
      ]
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "9.0124954096774193548387096774193548387096774193548",
      "primary_mean_contrast_on_common_dates": "9.12530412",
      "mean_contrast_on_common_dates": "9.12530412",
      "town_mean_on_common_dates": "10.798029213333333333333333333333333333333333333333",
      "max_absolute_town_change_from_primary": "0E-7",
      "max_change_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ]
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_max_1h",
      "stream": "RAW_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "9.0124954096774193548387096774193548387096774193548",
      "primary_mean_contrast_on_common_dates": "9.12530412",
      "mean_contrast_on_common_dates": "9.12530412",
      "town_mean_on_common_dates": "10.798029213333333333333333333333333333333333333333",
      "max_absolute_town_change_from_primary": "0E-7",
      "max_change_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ]
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": -1,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "9.0193548387096774193548387096774193548387096774194",
      "primary_mean_contrast_on_common_dates": "9.1333333333333333333333333333333333333333333333333",
      "mean_contrast_on_common_dates": "9.06",
      "town_mean_on_common_dates": "10.863333333333333333333333333333333333333333333333",
      "max_absolute_town_change_from_primary": "2.2",
      "max_change_dates": [
        "2025-12-27"
      ]
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 0,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "9.0193548387096774193548387096774193548387096774194",
      "primary_mean_contrast_on_common_dates": "9.1333333333333333333333333333333333333333333333333",
      "mean_contrast_on_common_dates": "9.1333333333333333333333333333333333333333333333333",
      "town_mean_on_common_dates": "10.79",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ]
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_max_1h",
      "stream": "ROUNDED_VALUE",
      "shift_hours": 1,
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ],
      "common_pair_count": 30,
      "ordinary_primary_mean_contrast": "9.0193548387096774193548387096774193548387096774194",
      "primary_mean_contrast_on_common_dates": "9.1333333333333333333333333333333333333333333333333",
      "mean_contrast_on_common_dates": "9.1333333333333333333333333333333333333333333333333",
      "town_mean_on_common_dates": "10.79",
      "max_absolute_town_change_from_primary": "0.0",
      "max_change_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30"
      ]
    }
  ],
  "precision_sensitivity": [
    {
      "period": "2025",
      "metric": "pm25_daily_mean",
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31",
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30",
        "2025-12-31"
      ],
      "common_pair_count": 330,
      "mean_rounded_minus_raw_town": "-0.000019516757941461030705881964463200161140664573158485",
      "max_absolute_daily_difference": "0.0214250166666666666666666666666666666666666666667",
      "max_difference_dates": [
        "2025-07-02"
      ]
    },
    {
      "period": "2025",
      "metric": "no2_daily_mean",
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "common_pair_count": 319,
      "mean_rounded_minus_raw_town": "-0.00066108831574208546009726759065008600527922206795774",
      "max_absolute_daily_difference": "0.01847125",
      "max_difference_dates": [
        "2025-01-06"
      ]
    },
    {
      "period": "2025",
      "metric": "no2_daily_max_1h",
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31",
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28",
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30",
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31",
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30",
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31",
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30",
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31",
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30",
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "common_pair_count": 319,
      "mean_rounded_minus_raw_town": "-0.0047023050156739811912225705329153605015673981191223",
      "max_absolute_daily_difference": "0.04989",
      "max_difference_dates": [
        "2025-01-30"
      ]
    },
    {
      "period": "2025-01",
      "metric": "pm25_daily_mean",
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "mean_rounded_minus_raw_town": "0.00007906066666666666666666666666666666666666666666",
      "max_absolute_daily_difference": "0.0179546250000000000000000000000000000000000000000",
      "max_difference_dates": [
        "2025-01-30"
      ]
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_mean",
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "mean_rounded_minus_raw_town": "-0.001602767463768115942028985507246376811594202898564",
      "max_absolute_daily_difference": "0.01847125",
      "max_difference_dates": [
        "2025-01-06"
      ]
    },
    {
      "period": "2025-01",
      "metric": "no2_daily_max_1h",
      "common_dates": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04",
        "2025-01-05",
        "2025-01-06",
        "2025-01-07",
        "2025-01-08",
        "2025-01-09",
        "2025-01-10",
        "2025-01-11",
        "2025-01-12",
        "2025-01-13",
        "2025-01-14",
        "2025-01-15",
        "2025-01-16",
        "2025-01-22",
        "2025-01-24",
        "2025-01-25",
        "2025-01-26",
        "2025-01-27",
        "2025-01-28",
        "2025-01-29",
        "2025-01-30",
        "2025-01-31"
      ],
      "common_pair_count": 25,
      "mean_rounded_minus_raw_town": "-0.00079352",
      "max_absolute_daily_difference": "0.04989",
      "max_difference_dates": [
        "2025-01-30"
      ]
    },
    {
      "period": "2025-02",
      "metric": "pm25_daily_mean",
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-04",
        "2025-02-05",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-12",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-26",
        "2025-02-27",
        "2025-02-28"
      ],
      "common_pair_count": 28,
      "mean_rounded_minus_raw_town": "-0.00041485035492457852706299911268855368234250221828214",
      "max_absolute_daily_difference": "0.0131323250000000000000000000000000000000000000000",
      "max_difference_dates": [
        "2025-02-12"
      ]
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_mean",
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "common_pair_count": 23,
      "mean_rounded_minus_raw_town": "-0.00084410683966317236638597697198831414332359511945739",
      "max_absolute_daily_difference": "0.0137669565217391304347826086956521739130434782609",
      "max_difference_dates": [
        "2025-02-16"
      ]
    },
    {
      "period": "2025-02",
      "metric": "no2_daily_max_1h",
      "common_dates": [
        "2025-02-01",
        "2025-02-02",
        "2025-02-03",
        "2025-02-06",
        "2025-02-07",
        "2025-02-08",
        "2025-02-09",
        "2025-02-10",
        "2025-02-11",
        "2025-02-13",
        "2025-02-14",
        "2025-02-15",
        "2025-02-16",
        "2025-02-17",
        "2025-02-18",
        "2025-02-19",
        "2025-02-20",
        "2025-02-21",
        "2025-02-22",
        "2025-02-23",
        "2025-02-24",
        "2025-02-25",
        "2025-02-28"
      ],
      "common_pair_count": 23,
      "mean_rounded_minus_raw_town": "0.0032833478260869565217391304347826086956521739130435",
      "max_absolute_daily_difference": "0.0446793",
      "max_difference_dates": [
        "2025-02-13"
      ]
    },
    {
      "period": "2025-03",
      "metric": "pm25_daily_mean",
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-23",
        "2025-03-24",
        "2025-03-25",
        "2025-03-26",
        "2025-03-27",
        "2025-03-28",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 28,
      "mean_rounded_minus_raw_town": "0.00058628437499999999999999999999999999999999999999643",
      "max_absolute_daily_difference": "0.0110518416666666666666666666666666666666666666666",
      "max_difference_dates": [
        "2025-03-20"
      ]
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_mean",
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 24,
      "mean_rounded_minus_raw_town": "-0.00036316947463768115942028985507246376811594202897917",
      "max_absolute_daily_difference": "0.0134632454545454545454545454545454545454545454546",
      "max_difference_dates": [
        "2025-03-30"
      ]
    },
    {
      "period": "2025-03",
      "metric": "no2_daily_max_1h",
      "common_dates": [
        "2025-03-01",
        "2025-03-02",
        "2025-03-03",
        "2025-03-04",
        "2025-03-07",
        "2025-03-08",
        "2025-03-09",
        "2025-03-10",
        "2025-03-11",
        "2025-03-12",
        "2025-03-13",
        "2025-03-14",
        "2025-03-15",
        "2025-03-16",
        "2025-03-17",
        "2025-03-18",
        "2025-03-19",
        "2025-03-20",
        "2025-03-21",
        "2025-03-22",
        "2025-03-27",
        "2025-03-29",
        "2025-03-30",
        "2025-03-31"
      ],
      "common_pair_count": 24,
      "mean_rounded_minus_raw_town": "-0.0079965458333333333333333333333333333333333333333333",
      "max_absolute_daily_difference": "0.0453159",
      "max_difference_dates": [
        "2025-03-27"
      ]
    },
    {
      "period": "2025-04",
      "metric": "pm25_daily_mean",
      "common_dates": [
        "2025-04-01",
        "2025-04-02",
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 25,
      "mean_rounded_minus_raw_town": "0.000745254979266347687400318979266347687400318979272",
      "max_absolute_daily_difference": "0.011077425",
      "max_difference_dates": [
        "2025-04-05"
      ]
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_mean",
      "common_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 28,
      "mean_rounded_minus_raw_town": "-0.0013051243012422360248447204968944099378881987577607",
      "max_absolute_daily_difference": "0.0103150304347826086956521739130434782608695652174",
      "max_difference_dates": [
        "2025-04-11"
      ]
    },
    {
      "period": "2025-04",
      "metric": "no2_daily_max_1h",
      "common_dates": [
        "2025-04-03",
        "2025-04-04",
        "2025-04-05",
        "2025-04-06",
        "2025-04-07",
        "2025-04-08",
        "2025-04-09",
        "2025-04-10",
        "2025-04-11",
        "2025-04-12",
        "2025-04-13",
        "2025-04-14",
        "2025-04-15",
        "2025-04-16",
        "2025-04-17",
        "2025-04-18",
        "2025-04-19",
        "2025-04-20",
        "2025-04-21",
        "2025-04-22",
        "2025-04-23",
        "2025-04-24",
        "2025-04-25",
        "2025-04-26",
        "2025-04-27",
        "2025-04-28",
        "2025-04-29",
        "2025-04-30"
      ],
      "common_pair_count": 28,
      "mean_rounded_minus_raw_town": "0.00067329642857142857142857142857142857142857142857143",
      "max_absolute_daily_difference": "0.049827",
      "max_difference_dates": [
        "2025-04-06"
      ]
    },
    {
      "period": "2025-05",
      "metric": "pm25_daily_mean",
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "mean_rounded_minus_raw_town": "-0.00050544368279569892473118279569892473118279569891613",
      "max_absolute_daily_difference": "0.0176669458333333333333333333333333333333333333333",
      "max_difference_dates": [
        "2025-05-25"
      ]
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_mean",
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "mean_rounded_minus_raw_town": "-0.0016139240851714905010837689659569042458243019252968",
      "max_absolute_daily_difference": "0.0104605391304347826086956521739130434782608695653",
      "max_difference_dates": [
        "2025-05-19"
      ]
    },
    {
      "period": "2025-05",
      "metric": "no2_daily_max_1h",
      "common_dates": [
        "2025-05-01",
        "2025-05-02",
        "2025-05-03",
        "2025-05-04",
        "2025-05-05",
        "2025-05-06",
        "2025-05-07",
        "2025-05-08",
        "2025-05-09",
        "2025-05-10",
        "2025-05-11",
        "2025-05-12",
        "2025-05-13",
        "2025-05-14",
        "2025-05-15",
        "2025-05-16",
        "2025-05-17",
        "2025-05-18",
        "2025-05-19",
        "2025-05-20",
        "2025-05-21",
        "2025-05-22",
        "2025-05-23",
        "2025-05-24",
        "2025-05-25",
        "2025-05-26",
        "2025-05-27",
        "2025-05-28",
        "2025-05-29",
        "2025-05-30",
        "2025-05-31"
      ],
      "common_pair_count": 31,
      "mean_rounded_minus_raw_town": "-0.010375361290322580645161290322580645161290322580645",
      "max_absolute_daily_difference": "0.0498032",
      "max_difference_dates": [
        "2025-05-14"
      ]
    },
    {
      "period": "2025-06",
      "metric": "pm25_daily_mean",
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-07",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 27,
      "mean_rounded_minus_raw_town": "0.00031450632716049382716049382716049382716049382714074",
      "max_absolute_daily_difference": "0.0142295708333333333333333333333333333333333333333",
      "max_difference_dates": [
        "2025-06-21"
      ]
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_mean",
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 26,
      "mean_rounded_minus_raw_town": "-0.0013019255092733353602918820310124657950744907266692",
      "max_absolute_daily_difference": "0.0132748695652173913043478260869565217391304347826",
      "max_difference_dates": [
        "2025-06-06"
      ]
    },
    {
      "period": "2025-06",
      "metric": "no2_daily_max_1h",
      "common_dates": [
        "2025-06-01",
        "2025-06-02",
        "2025-06-03",
        "2025-06-04",
        "2025-06-06",
        "2025-06-10",
        "2025-06-11",
        "2025-06-12",
        "2025-06-13",
        "2025-06-14",
        "2025-06-15",
        "2025-06-16",
        "2025-06-17",
        "2025-06-18",
        "2025-06-19",
        "2025-06-20",
        "2025-06-21",
        "2025-06-22",
        "2025-06-23",
        "2025-06-24",
        "2025-06-25",
        "2025-06-26",
        "2025-06-27",
        "2025-06-28",
        "2025-06-29",
        "2025-06-30"
      ],
      "common_pair_count": 26,
      "mean_rounded_minus_raw_town": "-0.012745576923076923076923076923076923076923076923077",
      "max_absolute_daily_difference": "0.046379",
      "max_difference_dates": [
        "2025-06-12"
      ]
    },
    {
      "period": "2025-07",
      "metric": "pm25_daily_mean",
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-07",
        "2025-07-08",
        "2025-07-09",
        "2025-07-10",
        "2025-07-11",
        "2025-07-12",
        "2025-07-13",
        "2025-07-14",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-23",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30",
        "2025-07-31"
      ],
      "common_pair_count": 31,
      "mean_rounded_minus_raw_town": "0.00029708221111797088027987858208571281576374954982581",
      "max_absolute_daily_difference": "0.0214250166666666666666666666666666666666666666667",
      "max_difference_dates": [
        "2025-07-02"
      ]
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_mean",
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "common_pair_count": 22,
      "mean_rounded_minus_raw_town": "-0.00035630335968379446640316205533596837944664031620455",
      "max_absolute_daily_difference": "0.0118274347826086956521739130434782608695652173914",
      "max_difference_dates": [
        "2025-07-25"
      ]
    },
    {
      "period": "2025-07",
      "metric": "no2_daily_max_1h",
      "common_dates": [
        "2025-07-01",
        "2025-07-02",
        "2025-07-03",
        "2025-07-04",
        "2025-07-05",
        "2025-07-06",
        "2025-07-11",
        "2025-07-15",
        "2025-07-16",
        "2025-07-17",
        "2025-07-18",
        "2025-07-19",
        "2025-07-20",
        "2025-07-21",
        "2025-07-22",
        "2025-07-24",
        "2025-07-25",
        "2025-07-26",
        "2025-07-27",
        "2025-07-28",
        "2025-07-29",
        "2025-07-30"
      ],
      "common_pair_count": 22,
      "mean_rounded_minus_raw_town": "-0.0065429409090909090909090909090909090909090909090909",
      "max_absolute_daily_difference": "0.0489",
      "max_difference_dates": [
        "2025-07-15"
      ]
    },
    {
      "period": "2025-08",
      "metric": "pm25_daily_mean",
      "common_dates": [
        "2025-08-01",
        "2025-08-02",
        "2025-08-03",
        "2025-08-04",
        "2025-08-05",
        "2025-08-06",
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 31,
      "mean_rounded_minus_raw_town": "-0.0016527439574567554932211313697989714820009350163226",
      "max_absolute_daily_difference": "0.0133809750000000000000000000000000000000000000000",
      "max_difference_dates": [
        "2025-08-21"
      ]
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_mean",
      "common_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 25,
      "mean_rounded_minus_raw_town": "0.000131583083836072394424797170792594133555231953396",
      "max_absolute_daily_difference": "0.0144630260869565217391304347826086956521739130435",
      "max_difference_dates": [
        "2025-08-16"
      ]
    },
    {
      "period": "2025-08",
      "metric": "no2_daily_max_1h",
      "common_dates": [
        "2025-08-07",
        "2025-08-08",
        "2025-08-09",
        "2025-08-10",
        "2025-08-11",
        "2025-08-12",
        "2025-08-13",
        "2025-08-14",
        "2025-08-15",
        "2025-08-16",
        "2025-08-17",
        "2025-08-18",
        "2025-08-19",
        "2025-08-20",
        "2025-08-21",
        "2025-08-22",
        "2025-08-23",
        "2025-08-24",
        "2025-08-25",
        "2025-08-26",
        "2025-08-27",
        "2025-08-28",
        "2025-08-29",
        "2025-08-30",
        "2025-08-31"
      ],
      "common_pair_count": 25,
      "mean_rounded_minus_raw_town": "0.004816036",
      "max_absolute_daily_difference": "0.0459579",
      "max_difference_dates": [
        "2025-08-22"
      ]
    },
    {
      "period": "2025-09",
      "metric": "pm25_daily_mean",
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "mean_rounded_minus_raw_town": "-0.00026876410024154589371980676328502415458937198071",
      "max_absolute_daily_difference": "0.0113476666666666666666666666666666666666666666667",
      "max_difference_dates": [
        "2025-09-08"
      ]
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_mean",
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "mean_rounded_minus_raw_town": "-0.0013070344795783926218708827404479578392621870882767",
      "max_absolute_daily_difference": "0.0101648217391304347826086956521739130434782608695",
      "max_difference_dates": [
        "2025-09-06"
      ]
    },
    {
      "period": "2025-09",
      "metric": "no2_daily_max_1h",
      "common_dates": [
        "2025-09-01",
        "2025-09-02",
        "2025-09-03",
        "2025-09-04",
        "2025-09-05",
        "2025-09-06",
        "2025-09-07",
        "2025-09-08",
        "2025-09-09",
        "2025-09-10",
        "2025-09-11",
        "2025-09-12",
        "2025-09-13",
        "2025-09-14",
        "2025-09-15",
        "2025-09-16",
        "2025-09-17",
        "2025-09-18",
        "2025-09-19",
        "2025-09-20",
        "2025-09-21",
        "2025-09-22",
        "2025-09-23",
        "2025-09-24",
        "2025-09-25",
        "2025-09-26",
        "2025-09-27",
        "2025-09-28",
        "2025-09-29",
        "2025-09-30"
      ],
      "common_pair_count": 30,
      "mean_rounded_minus_raw_town": "-0.00246212",
      "max_absolute_daily_difference": "0.0475607",
      "max_difference_dates": [
        "2025-09-18"
      ]
    },
    {
      "period": "2025-10",
      "metric": "pm25_daily_mean",
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-11",
        "2025-10-12",
        "2025-10-13",
        "2025-10-14",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 25,
      "mean_rounded_minus_raw_town": "0.000731882000000000000000000000000000000000000000016",
      "max_absolute_daily_difference": "0.0114924208333333333333333333333333333333333333334",
      "max_difference_dates": [
        "2025-10-09"
      ]
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_mean",
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 27,
      "mean_rounded_minus_raw_town": "0.0014068895622895622895622895622895622895622895622963",
      "max_absolute_daily_difference": "0.0145451086956521739130434782608695652173913043478",
      "max_difference_dates": [
        "2025-10-29"
      ]
    },
    {
      "period": "2025-10",
      "metric": "no2_daily_max_1h",
      "common_dates": [
        "2025-10-01",
        "2025-10-02",
        "2025-10-03",
        "2025-10-04",
        "2025-10-05",
        "2025-10-06",
        "2025-10-07",
        "2025-10-08",
        "2025-10-09",
        "2025-10-10",
        "2025-10-15",
        "2025-10-16",
        "2025-10-17",
        "2025-10-18",
        "2025-10-19",
        "2025-10-20",
        "2025-10-21",
        "2025-10-22",
        "2025-10-23",
        "2025-10-24",
        "2025-10-25",
        "2025-10-26",
        "2025-10-27",
        "2025-10-28",
        "2025-10-29",
        "2025-10-30",
        "2025-10-31"
      ],
      "common_pair_count": 27,
      "mean_rounded_minus_raw_town": "0.00052351481481481481481481481481481481481481481481481",
      "max_absolute_daily_difference": "0.0445042",
      "max_difference_dates": [
        "2025-10-28"
      ]
    },
    {
      "period": "2025-11",
      "metric": "pm25_daily_mean",
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-04",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-19",
        "2025-11-20",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 29,
      "mean_rounded_minus_raw_town": "-0.00033868043924466338259441707717569786535303776683103",
      "max_absolute_daily_difference": "0.0156711333333333333333333333333333333333333333333",
      "max_difference_dates": [
        "2025-11-10"
      ]
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_mean",
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 27,
      "mean_rounded_minus_raw_town": "-0.00045668339343087626840487252386565887710052469775185",
      "max_absolute_daily_difference": "0.0162761086956521739130434782608695652173913043478",
      "max_difference_dates": [
        "2025-11-21"
      ]
    },
    {
      "period": "2025-11",
      "metric": "no2_daily_max_1h",
      "common_dates": [
        "2025-11-01",
        "2025-11-02",
        "2025-11-03",
        "2025-11-05",
        "2025-11-06",
        "2025-11-07",
        "2025-11-08",
        "2025-11-09",
        "2025-11-10",
        "2025-11-11",
        "2025-11-12",
        "2025-11-13",
        "2025-11-14",
        "2025-11-15",
        "2025-11-16",
        "2025-11-17",
        "2025-11-18",
        "2025-11-21",
        "2025-11-22",
        "2025-11-23",
        "2025-11-24",
        "2025-11-25",
        "2025-11-26",
        "2025-11-27",
        "2025-11-28",
        "2025-11-29",
        "2025-11-30"
      ],
      "common_pair_count": 27,
      "mean_rounded_minus_raw_town": "-0.016063462962962962962962962962962962962962962962963",
      "max_absolute_daily_difference": "0.048513",
      "max_difference_dates": [
        "2025-11-27"
      ]
    },
    {
      "period": "2025-12",
      "metric": "pm25_daily_mean",
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-20",
        "2025-12-30",
        "2025-12-31"
      ],
      "common_pair_count": 20,
      "mean_rounded_minus_raw_town": "0.00084708146920289855072463768115942028985507246377",
      "max_absolute_daily_difference": "0.0112944541666666666666666666666666666666666666666",
      "max_difference_dates": [
        "2025-12-07"
      ]
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_mean",
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "common_pair_count": 31,
      "mean_rounded_minus_raw_town": "-0.00013411956330485783501211271197245951804156572739677",
      "max_absolute_daily_difference": "0.0178098826086956521739130434782608695652173913043",
      "max_difference_dates": [
        "2025-12-23"
      ]
    },
    {
      "period": "2025-12",
      "metric": "no2_daily_max_1h",
      "common_dates": [
        "2025-12-01",
        "2025-12-02",
        "2025-12-03",
        "2025-12-04",
        "2025-12-05",
        "2025-12-06",
        "2025-12-07",
        "2025-12-08",
        "2025-12-09",
        "2025-12-10",
        "2025-12-11",
        "2025-12-12",
        "2025-12-13",
        "2025-12-14",
        "2025-12-15",
        "2025-12-16",
        "2025-12-17",
        "2025-12-18",
        "2025-12-19",
        "2025-12-20",
        "2025-12-21",
        "2025-12-22",
        "2025-12-23",
        "2025-12-24",
        "2025-12-25",
        "2025-12-26",
        "2025-12-27",
        "2025-12-28",
        "2025-12-29",
        "2025-12-30",
        "2025-12-31"
      ],
      "common_pair_count": 31,
      "mean_rounded_minus_raw_town": "-0.0068594290322580645161290322580645161290322580645161",
      "max_absolute_daily_difference": "0.0486061",
      "max_difference_dates": [
        "2025-12-01"
      ]
    }
  ]
}
